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 の新しいホームページのフロントエンドの実践的な概要
目次序文構築可能なスタイルシートとは何ですか? CSSモジュールスクリプトの使用インポートアサーショ...
目次序文1. リクエスト内容が大きすぎる解決: CDN の紹介リクエストリソースを圧縮する1. HT...
個人アカウントのパスワードを変更する一般ユーザーが個人アカウントのパスワードを変更する場合は、他のコ...
CSS3アニメーションとJSアニメーションの違いJSはフレームアニメーションを実装しますCSS3はト...
1. CSSを使用するコードをコピーコードは次のとおりです。スタイル="display:n...
目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...
序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...
HTML Police がコードを調べて意味のないタグをすべて見つけ出すので、注意を払う必要がありま...
Docker の作成Compose の紹介Compose は、マルチコンテナ Docker アプリケ...
目次1. レシピ集1.1 プロジェクトの背景1.2 テクノロジースタック1.3 開発環境1.4. プ...
コードをコピーコードは次のとおりです。 window.location.href="zcb...
show-header属性を使用したドキュメントのヒントshow-header <el-テーブ...
ページ A、B、C の 3 つがあります。ページ A にはページ B が含まれ、ページ B にはペー...
/****************** * Linux カーネルの時間管理 ***********...
tomcat9をアンインストールする1. Tomcatのインストールはディレクトリに解凍するだけで...