Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yosuke Onoue
PDF, PPTX
10,928 views
AngularJSでの非同期処理の話
Technology
◦
Read more
13
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
Recommended
PDF
AngularJSの高速化
by
Kon Yuichi
PPTX
Angular js はまりどころ
by
Ayumi Goto
PDF
Angular.jsについてちょっとしゃべる
by
Masashi Haga
PPTX
React を導入したフロントエンド開発
by
daisuke-a-matsui
PDF
One Time Binding & Digest Loop
by
Kon Yuichi
PPTX
エンタープライズ分野での実践AngularJS
by
Ayumi Goto
PPTX
AngularJS入門
by
Kenji Shirane
PDF
Vue.jsでさくっとMVVM
by
Satoshi Anai
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
PDF
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
PPTX
20160927 reactmeetup
by
Naoki Kurosawa
PDF
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
PDF
はじめてのVue.js
by
kamiyam .
PPTX
まだDOM操作で消耗してるの?
by
IRI MO
PDF
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
PDF
Vue.js入門
by
Takuya Sato
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
PDF
Start React with Browserify
by
Muyuu Fujita
PPTX
AngularJSを浅めに紹介します
by
nkazuki
PDF
Alt01-LT
by
Yuta Hiroto
PPTX
簡単AngularJS(関西AngularJS勉強会)
by
Takahiro Maki
PDF
jQueryを中心としたJavaScript
by
hideaki honda
PDF
Flux react現状確認会
by
VOYAGE GROUP
PDF
React.js + Flux
by
dsuke Takaoka
PDF
3分でわかるangular js
by
Shin Adachi
PDF
Async Enhancement
by
kamiyam .
PPTX
JavaScript非同期処理 入門
by
Ishibashi Ryosuke
More Related Content
PDF
AngularJSの高速化
by
Kon Yuichi
PPTX
Angular js はまりどころ
by
Ayumi Goto
PDF
Angular.jsについてちょっとしゃべる
by
Masashi Haga
PPTX
React を導入したフロントエンド開発
by
daisuke-a-matsui
PDF
One Time Binding & Digest Loop
by
Kon Yuichi
PPTX
エンタープライズ分野での実践AngularJS
by
Ayumi Goto
PPTX
AngularJS入門
by
Kenji Shirane
PDF
Vue.jsでさくっとMVVM
by
Satoshi Anai
AngularJSの高速化
by
Kon Yuichi
Angular js はまりどころ
by
Ayumi Goto
Angular.jsについてちょっとしゃべる
by
Masashi Haga
React を導入したフロントエンド開発
by
daisuke-a-matsui
One Time Binding & Digest Loop
by
Kon Yuichi
エンタープライズ分野での実践AngularJS
by
Ayumi Goto
AngularJS入門
by
Kenji Shirane
Vue.jsでさくっとMVVM
by
Satoshi Anai
What's hot
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
PDF
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
PPTX
20160927 reactmeetup
by
Naoki Kurosawa
PDF
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
PDF
はじめてのVue.js
by
kamiyam .
PPTX
まだDOM操作で消耗してるの?
by
IRI MO
PDF
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
PDF
Vue.js入門
by
Takuya Sato
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
PDF
Start React with Browserify
by
Muyuu Fujita
PPTX
AngularJSを浅めに紹介します
by
nkazuki
PDF
Alt01-LT
by
Yuta Hiroto
PPTX
簡単AngularJS(関西AngularJS勉強会)
by
Takahiro Maki
PDF
jQueryを中心としたJavaScript
by
hideaki honda
PDF
Flux react現状確認会
by
VOYAGE GROUP
PDF
React.js + Flux
by
dsuke Takaoka
PDF
3分でわかるangular js
by
Shin Adachi
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
今からでも遅くない! React事始め
by
ynaruta
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
20160927 reactmeetup
by
Naoki Kurosawa
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
はじめてのVue.js
by
kamiyam .
まだDOM操作で消耗してるの?
by
IRI MO
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
Vue.js入門
by
Takuya Sato
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
Start React with Browserify
by
Muyuu Fujita
AngularJSを浅めに紹介します
by
nkazuki
Alt01-LT
by
Yuta Hiroto
簡単AngularJS(関西AngularJS勉強会)
by
Takahiro Maki
jQueryを中心としたJavaScript
by
hideaki honda
Flux react現状確認会
by
VOYAGE GROUP
React.js + Flux
by
dsuke Takaoka
3分でわかるangular js
by
Shin Adachi
Similar to AngularJSでの非同期処理の話
PDF
Async Enhancement
by
kamiyam .
PPTX
JavaScript非同期処理 入門
by
Ishibashi Ryosuke
PDF
Promiseでコールバック地獄から解放された話
by
Sota Sugiura
PPTX
モダン JavaScript における非同期処理 - Promise, async/await -
by
Kazunori Hashikuchi
PDF
PHPにおけるI/O多重化とyield
by
Yahoo!デベロッパーネットワーク
PDF
Flow.js
by
uupaa
PDF
About promise
by
Cy-BB
PPTX
Reactive
by
Akihiro Ikezoe
PPTX
それRxJSでできるよ
by
Tomohiro Noguchi
ODP
AngularJSとの危険な関係 by Mario Heiderich - CODE BLUE 2015
by
CODE BLUE
PDF
Promise async await
by
ikdysfm
PDF
JS非同期処理のいま
by
Masakazu Muraoka
PPTX
SpringIO2019報告_Kotlin関連
by
ShingoKurihara1
PPT
Ja story of cakephp2.0
by
Hiroki Shimizu
Async Enhancement
by
kamiyam .
JavaScript非同期処理 入門
by
Ishibashi Ryosuke
Promiseでコールバック地獄から解放された話
by
Sota Sugiura
モダン JavaScript における非同期処理 - Promise, async/await -
by
Kazunori Hashikuchi
PHPにおけるI/O多重化とyield
by
Yahoo!デベロッパーネットワーク
Flow.js
by
uupaa
About promise
by
Cy-BB
Reactive
by
Akihiro Ikezoe
それRxJSでできるよ
by
Tomohiro Noguchi
AngularJSとの危険な関係 by Mario Heiderich - CODE BLUE 2015
by
CODE BLUE
Promise async await
by
ikdysfm
JS非同期処理のいま
by
Masakazu Muraoka
SpringIO2019報告_Kotlin関連
by
ShingoKurihara1
Ja story of cakephp2.0
by
Hiroki Shimizu
More from Yosuke Onoue
PDF
Angular 2のRenderer
by
Yosuke Onoue
PDF
アニメーション(のためのパフォーマンス)の基礎知識
by
Yosuke Onoue
PDF
AngularJSでデータビジュアライゼーションがしたい
by
Yosuke Onoue
PDF
GDG DevFest Kobe Firebaseハンズオン勉強会
by
Yosuke Onoue
PDF
Polymerやってみた
by
Yosuke Onoue
PDF
asm.jsとWebAssemblyって実際なんなの?
by
Yosuke Onoue
PDF
AngularFireで楽々バックエンド
by
Yosuke Onoue
PDF
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
by
Yosuke Onoue
PDF
社会的決定とAHP
by
Yosuke Onoue
PDF
CUDA 6の話@関西GPGPU勉強会#5
by
Yosuke Onoue
PDF
Anaconda & NumbaPro 使ってみた
by
Yosuke Onoue
PDF
PythonistaがOCamlを実用する方法
by
Yosuke Onoue
KEY
What's New In Python 3.3をざっと眺める
by
Yosuke Onoue
KEY
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
by
Yosuke Onoue
KEY
PyOpenCLによるGPGPU入門
by
Yosuke Onoue
PPTX
数理最適化とPython
by
Yosuke Onoue
PPTX
201010ksmap
by
Yosuke Onoue
PPTX
PyCUDAの紹介
by
Yosuke Onoue
PPT
Rsa暗号で彼女が出来るらしい
by
Yosuke Onoue
Angular 2のRenderer
by
Yosuke Onoue
アニメーション(のためのパフォーマンス)の基礎知識
by
Yosuke Onoue
AngularJSでデータビジュアライゼーションがしたい
by
Yosuke Onoue
GDG DevFest Kobe Firebaseハンズオン勉強会
by
Yosuke Onoue
Polymerやってみた
by
Yosuke Onoue
asm.jsとWebAssemblyって実際なんなの?
by
Yosuke Onoue
AngularFireで楽々バックエンド
by
Yosuke Onoue
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
by
Yosuke Onoue
社会的決定とAHP
by
Yosuke Onoue
CUDA 6の話@関西GPGPU勉強会#5
by
Yosuke Onoue
Anaconda & NumbaPro 使ってみた
by
Yosuke Onoue
PythonistaがOCamlを実用する方法
by
Yosuke Onoue
What's New In Python 3.3をざっと眺める
by
Yosuke Onoue
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
by
Yosuke Onoue
PyOpenCLによるGPGPU入門
by
Yosuke Onoue
数理最適化とPython
by
Yosuke Onoue
201010ksmap
by
Yosuke Onoue
PyCUDAの紹介
by
Yosuke Onoue
Rsa暗号で彼女が出来るらしい
by
Yosuke Onoue
AngularJSでの非同期処理の話
1.
2014年6月8日AngularJSでの非同期処理の話AngularJS 勉強会 by
GDG神戸
2.
自己紹介✤ おのうえ (@_likr)!✤
博士課程の大学院生!✤ 可視化や最適化を使った意思決定支援に興味あり
3.
Webと可視化✤ Canvas、SVG、WebGLといったAPI、 D3.js、Three.jsといったライブラリによって Web上での可視化基盤が整えられたhttp://threejs.org/http://d3js.org/
4.
AngularJSでやってること
5.
本セッションの内容✤ JavaScriptには、HTTPアクセス、ファイルIO、 アニメーションなど非同期処理がたくさん!✤ 可視化のためのデータ取得も非同期処理!!✤
実アプリケーションには必要不可欠な非同期処理を AngularJSでどのように扱うのか様々な例を紹介
6.
目次1. 遅延処理 -
$timeout!2. HTTPアクセス - $http!3. REST APIサーバーへのアクセス - ngResource!4. Promiseを提供する - $q!5. ngRouteとresolve
7.
目次1. 遅延処理 -
$timeout!2. HTTPアクセス - $http!3. REST APIサーバーへのアクセス - ngResource!4. Promiseを提供する - $q!5. ngRouteとresolve
8.
$timeout✤ window.setTimeoutのラッパー!✤ 指定した時間待った後処理を実行する!✤
使い方https://docs.angularjs.org/api/ng/service/$timeout$timeout(fn[, delay])fndelay 遅れさせる時間(ミリ秒)実行する処理
9.
$timeoutのサンプル<div ng-app><div ng-controller="TimeoutExample"><span>{{str}}</span><button
ng-click="cancel()">Cancel</button></div></div>function TimeoutExample($scope, $timeout) {$scope.str = 'Prompt Result';var promise = $timeout(function() {$scope.str = prompt('Input Message');}, 2000);$scope.cancel = function() {$timeout.cancel(promise);$scope.str = 'Canceled';};}http://jsfiddle.net/likr/2NMyP/$timeoutで、2秒後にプロンプトを 表示して、入力をビューに表示する$timeout.cancelに$timeoutの 戻り値を渡すことで処理の中止$timeoutを依存性注入する
10.
setTimeoutじゃダメなの?function TimeoutExample($scope) {$scope.str
= 'Prompt Result';!var timeoutId = setTimeout(function () {$scope.str = prompt('Input Message');}, 2000);!$scope.cancel = function () {clearTimeout(timeoutId);$scope.str = 'Canceled';};}http://jsfiddle.net/likr/243ja/
11.
setTimeoutじゃダメなの?function TimeoutExample($scope) {$scope.str
= 'Prompt Result';!var timeoutId = setTimeout(function () {$scope.str = prompt('Input Message');}, 2000);!$scope.cancel = function () {clearTimeout(timeoutId);$scope.str = 'Canceled';};}http://jsfiddle.net/likr/243ja/function TimeoutExample($scope) {$scope.str = 'Prompt Result';!var timeoutId = setTimeout(function () {$scope.$apply(function () {$scope.str = prompt('Input Message');});}, 2000);!$scope.cancel = function () {clearTimeout(timeoutId);$scope.str = 'Canceled';};}データバインドを反映させるために$scope.$applyが必要http://jsfiddle.net/likr/243ja/2/
12.
$timeoutとpromise✤ Promise: 非同期処理をうまく扱うためのインタフェース!!!!!✤
$timeoutはpromiseを返すpromise.catch(onRejected)onFullfilledonRejected 処理が失敗したときの処理処理が成功した時の処理promise.then(onFullfilled[, onRejected])
13.
$timeoutとpromiseのサンプルfunction TimeoutExample($scope, $timeout)
{$scope.str = 'Prompt Result';$scope.status = 'Pending';!var promise = $timeout(function () {$scope.str = prompt('Input Message');}, 2000);!promise.then(function () {$scope.status = 'Fullfilled';});promise.catch(function () {$scope.status = 'Rejected';});!$scope.cancel = function () {$timeout.cancel(promise);$scope.str = 'Canceled';};}http://jsfiddle.net/likr/2NMyP/1/$timeoutのpromiseに成功時、 失敗時のコールバックを登録
14.
目次1. 遅延処理 -
$timeout!2. HTTPアクセス - $http!3. REST APIサーバーへのアクセス - ngResource!4. Promiseを提供する - $q!5. ngRouteとresolve
15.
$http✤ HTTPサーバーへとの通信を行う!✤ GET
/ POST / PUT / DELETE / HEAD!✤ JSONP!✤ 使い方https://docs.angularjs.org/api/ng/service/$http$http.get(url[, config])$http.post(url[, config])…$http(config)
16.
$httpのサンプルfunction HttpExample($scope, $http)
{$http.get('http://example.com/').then(function(response) {$scope.data = response.data;});}http://jsfiddle.net/likr/ct6Jn/function HttpExample($scope, $http) {$http({method: 'get',url: 'http://example.com/'}).then(function(response) {$scope.data = response.data;});}methodとurlを指定して$httpを呼び出す$httpを依存性注入する$httpはPromiseを返すのでthenで!通信成功、失敗時の処理ができる$http.getは$httpのショートカット
17.
Response✤ Promiseでresolveされるオブジェクトのプロパティ!✤ data:
Responseのbody!✤ status: HTTPのステータスコード!✤ headers: HTTPヘッダーのgetter!✤ config: $httpの引数!✤ statusText: HTTPのステータス文章
18.
HttpPromise✤ HttpPromise!✤ $httpが返すPromise!✤
thenの代わりにsuccessとerrorが使えるfunction HttpExample($scope, $http) {$http.get('http://gdgkobe-ng-guestbook.appspot.com/greetings').success(function(response) {$scope.data = response.data;}).error(function(reason) {});}
19.
他のAJAX APIと比べて✤ $scope.$applyの問題がない!✤
$httpBackendによるテストが容易
20.
目次1. 遅延処理 -
$timeout!2. HTTPアクセス - $http!3. REST APIサーバーへのアクセス - ngResource!4. Promiseを提供する - $q!5. ngRouteとresolve
21.
ngResource✤ REST APIサーバーとの通信を便利にするモジュール!✤
REST APIサーバーの例https://docs.angularjs.org/api/ngResourceMethod URL 処理GET http://example.com/greetings greetingGET http://example.com/greetings/1 ID1POST http://example.com/greetings 新しいPUT http://example.com/greetings/1 ID1DELETE http://example.com/greetings/1 ID1
22.
ngResourceの利用✤ AngularJS本体とは別jsファイルで提供されているので scriptタグを追加して読み込む!!✤ 依存モジュールとして指定<script
src="angular-resource.js"></script>var app = angular.module('example', ['ngResource']);
23.
Resourceの作成✤ リソースのURLを指定してResourceを作成!!✤ factoryでserviceとして登録しておくと便利$resource(‘http://example.com/greetings/:id')app.factory('Greeting',
function($resource) {return $resource(‘http://example.com/greetings/:id');});
24.
Resourceの利用✤ データ取得!!!✤ データ保存var
Greeting = $resource('http://example.com/greetings/:id');!var greetings = Greeting.query();var newGreeting = new Greeting();newGreeting.content = 'hello';newGreeting.$save();
25.
Resourceの遅延処理var app =
angular.module('example', ['ngResource']);!app.factory('Greeting', function($resource) {return $resource('http://gdgkobe-ng-guestbook.appsp});!app.controller('Main', function(Greeting) {var greetings = Greeting.query();greetings.$promise.then(function() {console.log(greetings);});console.log(greetings);});Resourceのメソッドはプレースホルダーを 返して、処理が完了した時点で内容を挿入するhttp://jsfiddle.net/likr/BHS5v/
26.
ResourceとPromise✤ 関数の結果の$promiseプロパティでPromiseを取得 get()、query()、delete()、$save…Greeting.query().$promise.then(function(greetings) {//
TODO});
27.
目次1. 遅延処理 -
$timeout!2. HTTPアクセス - $http!3. REST APIサーバーへのアクセス - ngResource!4. Promiseを提供する - $q!5. ngRouteとresolve
28.
Promiseを提供する✤ $timeout、$http、ngResourceはプロミスで 非同期処理を扱うことができる!✤ 自分の非同期処理、非AngularJSの外部ライブラリを 同様のAPIで提供する方法は?
29.
$q✤ Promiseの作成、ラップをする!✤ $timeout、$http、ngResource内でも使用されているhttps://docs.angularjs.org/api/ng/service/$q$q.defer()$q.when(promise)$q.all(promises)
30.
$q.defer✤ Deferredオブジェクトを作成する!!✤ resolve、reject、notifyで非同期処理の状態を通知する!!!✤
promiseプロパティでPromiseオブジェクトを取得するdeferred.resolve(value)deferred.reject(reason)deferred.notify(value)var deferred = $q.defer()var promise = deferred.promise;
31.
$qのサンプル1var app =
angular.module('q-example', []);!app.factory('d3get', function($q) {return function(xhr) {var deferred = $q.defer();xhr.on('load', function(data) {deferred.resolve(data);}).on('error', function(status) {deferred.reject(status);}).get();return deferred.promise;};})!app.controller('Main', function(d3get) {d3get(d3.csv('http://example.com/data.csv')).then(function(data) {// TODO});});D3.jsのxhr系関数をラップしてみる$q.deferでdeferredオブジェクトを作成データ取得が成功したらresolvepromiseオブジェクトを返すthenでデータ取得後の処理を行うloadDataをラップした関数をfactoryで提供データ取得が失敗したらreject
32.
$qのサンプル2function getData(url) {return
$.get(url);}!!function Main($q) {$q.when(getData('http://example.com/')).then(function(data) {// TODO});});jQueryのAJAX関数をラップしてみるAngularJSとは関係のない、jQueryXHR(Promise)を返す関数$q.whenでラップすると!$scope.$applyの手間等が不要
33.
目次1. 遅延処理 -
$timeout!2. HTTPアクセス - $http!3. REST APIサーバーへのアクセス - ngResource!4. Promiseを提供する - $q!5. ngRouteとresolve
34.
問題✤ 非同期処理が成功してからコントローラーの処理をしたい場合!✤ 認証、データ取得
35.
ngRoute✤ AngularJSのルーティングモジュール!✤ コントローラーへの依存性注入で、コントローラー処理に入る前にデータ取得などを済ませることができる!✤
ui-routerでも同様https://docs.angularjs.org/api/ngRoute
36.
ngRouteのresolvevar app =
angular.module('resolve-example', ['ngRoute']);!app.config(function($routeProvider) {$routeProvider.when('/', {template: '{{data}}',controller: function($scope, response) {$scope.data = response.data;},resolve: {response: function($http) {return $http.get('http://example.com/');}}});});resolveの要素がPromiseを返した場合、全てのPromiseがresolveされてからコントローラーの処理を行う
37.
まとめ✤ AngularJSが提供する非同期処理APIを使うことで 複雑な非同期処理も簡単に扱える!✤ Promiseパターンで非同期処理を統一的に扱える!✤
$qで自分で非同期処理を提供できる!✤ AngularJS用じゃない非同期処理は、データバインドに気をつける($q.when, $scope.$apply)
Download
[8]
ページ先頭
©2009-2025
Movatter.jp