[解決済み] AngularJSの$evalAsyncと$timeoutの違いは何ですか?
2022-04-20 06:54:48
質問
AngularJSを使い始めてからしばらく経ちますが、その間に タイムアウト は、時々(通常はjQueryプラグインを起動するためと思われる)。
最近、ダイジェスト・サイクルをより深く理解しようとしているところ、次のようなものに出会いました。 $evalAsync という関数があります。
と似たような結果が得られるようですが、その関数は
$timeout
ただ、遅延を与えないだけです。私はこれまで
$timeout
を使うべきだったのでしょうか?
$evalAsync
の代わりに
両者に根本的な違いはあるのでしょうか?また、どのような場合にどちらを使うのでしょうか?どのような場合にどちらを使うのか、感覚をつかみたいのですが。
どのように解決するのですか?
私は最近、この質問に対して本質的な答えを出しました。 https://stackoverflow.com/a/17239084/215945 (その回答は、Miskoとのいくつかのgithubでのやりとりにリンクしています)。
要約すると
- を使用してコードがキューイングされている場合 ディレクティブからの $evalAsync を実行する必要があります。 後 の場合、AngularによってDOMが操作されますが 前 ブラウザがレンダリングする
- を使用してコードがキューに入れられた場合 コントローラからの$evalAsync を実行する必要があります。 前に は、Angular によって DOM が操作される前(そしてブラウザがレンダリングする前)である必要があります。
- を使用してコードがキューに入れられた場合 タイムアウト を実行する必要があります。 後 は、AngularによってDOMが操作され、そして 後 ブラウザがレンダリングするとき(場合によってはちらつきが発生する可能性があります)。
関連
-
処理されない例外が発生しました。Angular 実行中のプロジェクトで NGCC に失敗しました。
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] angular-routeとangular-ui-routerの違いは何ですか?
-
[解決済み] AngularJSのng-repeatでキーと値を反復処理する方法は?
-
[解決済み] ng-modelとng-bindの違いは何ですか?
-
[解決済み] AngularJSでコントローラ間の通信を行う正しい方法は何ですか?
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
-
[解決済み】AngularJS 。observe メソッドと $watch メソッドの違い
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 方法 $state.go()
-
[解決済み] AngularJS の ng-disabled ディレクティブに式を指定しても動作しない
-
[解決済み] AngularJSの「href」と「ng-href」の違いについて
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
angularjsのルーティングについて $stateと$stateParamsの話
-
[解決済み] AngularJs .$setPristineでフォームをリセットする
-
[解決済み] ServiceとFactoryで迷う
-
[解決済み] 条件に応じて特定のルートにリダイレクトする機能
-
[解決済み] ng-repeat :単一フィールドによるフィルタリング
-
[解決済み】AngularJS 。observe メソッドと $watch メソッドの違い