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 の新しいホームページのフロントエンドの実践的な概要
序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...
最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...
目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...
mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....
この記事の例では、ショッピングカートの簡単な追加と削除を実現するためのJSの具体的なコードを参考まで...
ハイパーリンクを使用すると、ページからページへ、またはサイトからサイトへ瞬時に移動できます。このよう...
目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...
目次導入配列の作成作成方法詳しい説明方法参加する() push() と pop() shift() ...
目次序文-リンクカスタムネットワーク質問する序文前回は、 -Linkパラメータを使用してコンテナ間の...
序文:最近、プロジェクトで管理システムに遭遇しました。権限設定が非常に興味深いと思いました。自分の学...
目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...
MySQL によって作成される最適化はインデックスを追加することですが、インデックスを追加しても目的...
方法 1: 設定ファイルを変更する (docker サービスを停止する必要があります) 1. doc...
1. InnoDBストレージエンジンを使用する必要がありますCPU と IO のパフォーマンスが向上...
主要な Web サイトと個人的な習慣に従って、Docker ソースを追加するには次の方法を使用します...