1. マイクロタスクとは何ですか? 2. マクロタスクとは何ですか?
3. 事例<スクリプト> コンソール.log(1) タイムアウトを設定します(()=>{ コンソールログ("2") },0) Promise.resolve().then(()=>{ コンソールログ('3') }) コンソール.log(4) </スクリプト> 印刷の順序は なぜこの順番になっているのでしょうか? まず1-4を印刷してください。間違いなく問題ありません。 なぜ最初に 3 が印刷され、次に 2 が印刷されるのですか? なぜなら、 3 は 2はマクロタスクである マイクロタスクはマクロタスクよりも早く実行されます。 3が最初に実行され、次に2が実行されます 3.1 結論
4. コード例<本文> <div id="アプリ"></div> <スクリプト> // このセクションはDOMレンダリングです。let app=document.getElementById("app") let cont='<p>私はpタグです</p>' app.append(続き) // DOMレンダリング終了 console.log(1) タイムアウトを設定します(()=>{ コンソールログ("2") アラート('setTimeout2') },0) Promise.resolve().then(()=>{ コンソールログ('3') 警告('3') }) コンソール.log(4) </スクリプト> </本文> 4.1 コード分析上記コードの実行分析: まず 次に、まずマイクロタスク、次にマクロタスクに従って 3を出力し、3をポップアップします 次に出力2と表示され、 マイクロタスクとマクロタスクの間に 次に そこで 次に出力2と 4.2 結論と応用シナリオMicrotask>DOMレンダリング>Macrotask 次の例を参照してください この結論の適用シナリオ 私たちは皆、eChart を作成したことがあります。eChart をレンダリングするタイミングはわかっています。 ノードは、ページの DOM がレンダリングされた後にのみレンダリングできます。 そのため、一部の友人は、リクエストのタイミングをmonitored()ライフサイクルに配置するでしょう これにより、返されたデータがページ上で正常にレンダリングされることが保証されます。 実際、上記の結論に基づいています。 作成時にデータをリクエストできます。帰ってきたとき。 DOM は確実にレンダリングされます。リクエストはマクロタスクだからです。 マクロタスクの実行時間は DOM レンダリング後です。 以下もご興味があるかもしれません:
|
<<: Alipay の新しいホームページのフロントエンドの実践的な概要
訪問者があなたのウェブサイトを覚えておくのに役立つ3つの便利なコード。お気に入りに追加するためのヒン...
Docker コンテナに繰り返し入って操作することを避けるために、コンテナ内の一連の命令をホストマシ...
スワップ スペースは、オペレーティング システムに関係なく、今日のコンピューティングの一般的な側面で...
システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されてい...
簡単なレビュー: ブラウザの互換性の問題は、しばしば頭痛の種となります。ここでは、これらの問題を回避...
一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...
序文Docker はコンテナの環境変数を設定できます。設定方法は 2 つあります。イメージを作成する...
権限とデータベース設計ユーザー管理SQLyogを使用してユーザーを作成し、権限を付与する基本コマンド...
<p><b>これは太字フォントです</b></p> ...
この記事では、例を使用して、MySQL でストアド プロシージャを作成し、データ テーブルに新しいフ...
この記事では、MySQL 最適化のヒントで重複したエントリを削除する方法を例を使って説明します。ご参...
カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...
Docker に Tomcat をインストールする場合、大きなファイルをダウンロードするときなど、場...
1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...
目次必要:機能ポイントレンダリング実装のアイデア具体的なコード(react\taro3.0)特定のコ...