ブラウザーのロード、レンダリング、解析プロセスのブラック ボックスの簡単な分析_JavaScript スキル
Fiddler を使用して監視します。IE6 では、リソースのダウンロード順序は
明らかに、ダウンロード順序は上から下であり、ドキュメント ストリームの最初に表示されるリソースが最初にダウンロードされます。 IE8、Safari、Chrome、その他のブラウザでも同様です。
Firefox はダウンロード順序を最適化しました:
Firefox は js、css を事前にダウンロードし、画像やその他のリソースのダウンロードを後回しにします。
レンダリングには、Fiddler を使用してネットワーク速度を遅くします。ダウンロード後すぐに CSS がページにレンダリングされ、レンダリングとダウンロードが同時に実行されることがわかります。 js の解析と実行も同様です。
JS の実行とページ読み込み関連イベントのトリガーに関して特別なテストが行われました。 Firefox で、テスト ページを開きます:
[22:13:32.947] HTML Start[22:13:32.947] normal inline script run time[22:13:34.904] normal external script run time[22:13:35.775] [body] normal external script run time[22:13:35.789] [body end] normal external script run time[22:13:35.789] HTML End[22:13:35.791] deferred inline script run time[22:13:35.791] deferred external script run time[22:13:35.793] DOMContentLoaded[22:13:38.144] images[0] onload[22:13:38.328] images[1] onload[22:13:39.105] images[2] onload[22:13:39.105] images[3] onload[22:13:39.106] window.onload
明らかに、JS はドキュメント フロー内の順序で厳密に実行されます。遅延スクリプトは最後に実行されます (注: Firefox 3.5 では遅延のサポートが開始され、サポートは完璧です)。
もう一度 IE8 を見てみると、結果は次のようになります:
[22:33:56.806] HTML Start[22:33:56.826] normal inline script run time[22:33:57.786] normal external script run time[22:33:57.812] deferred inline script run time[22:33:57.816] document.readyState = interactive[22:33:57.934] [body] normal external script run time[22:33:58.310] [body end] normal external script run time[22:33:58.310] HTML End[22:33:58.346] deferred external script run time[22:33:58.346] images[0].readyState = loading[22:33:58.346] images[0].readyState = complete[22:33:58.346] images[0] onload[22:33:58.361] doScroll[22:33:58.451] images[1].readyState = loading[22:33:58.479] images[1].readyState = complete[22:33:58.479] images[1] onload[22:33:58.794] images[2].readyState = loading[22:33:58.854] images[2].readyState = complete[22:33:58.854] images[2] onload[22:33:58.876] images[3].readyState = loading[22:33:58.876] images[3].readyState = complete[22:33:58.876] images[3] onload[22:33:58.887] document.readyState = complete[22:33:58.888] window.onload
IE8 では、defer は外部スクリプトに対してのみ有効であり、インライン スクリプトに対しては無効であることがわかります。さらに、DOMContentLoaded に最も近いのは doScroll であるため、DOMContentLoaded をシミュレートするために doScroll が広く使用されています。注意: これは単なるシミュレーションであり、細部が同等ではありません。
やや予期せぬ結果が得られることもあります。本体の末尾より前に配置されたスクリプトは、実行時に domready イベントに配置されるのが最適です。 Firefox であっても IE であっても、特にページが複雑な場合、HTML End まで解析しても DOM を安全に操作できるとは限りません。
上記のデータから、スタイルを上部に配置し、スクリプトを下部に配置することを推奨する YSlow パフォーマンス最適化ルールの根拠もわかります。
興味のある方は、スタイルとスクリプトを動的に追加する状況をさらにテストしてください。少し異なりますが、特別な驚きはありません。
最終概要:
ページ リソースのダウンロード順序は上から下で、ドキュメント フローで最初に表示されるリソースが最初にダウンロードされます (注: 同時実行性があります。詳細については、UA Profiler を参照してください)。特定のスタイルがダウンロードされると、そのスタイルはすぐにページにレンダリングされます (カスケード スタイル シートのレンダリングにおけるカスケードの意味を反映しています)。スクリプトがダウンロードされると、すぐに解析されて実行されます。スクリプトはドキュメント フロー内の順序で厳密に実行され、遅延スクリプトは通常のスクリプトの後に実行されます (Firefox および IE の場合)。
特別な注意を払う必要があります: スクリプトの実行中、スクリプトの下にあるすべてのリソースのダウンロードは一時停止されます (スクリプトはドキュメント フローを変更したり、ページにジャンプしたりする可能性があるため、ブラウザの一時停止ポリシーは適切です) 。インライン スクリプトには注意してください。インライン スクリプトにより、後続のダウンロードがブロックされる可能性があります。
わかりました、これ以上ナンセンスはやめてください。上記の結果を自分でテストし、繰り返しテストし、目がくらんで混乱し、突然混乱し続けていることに気づくまで狂ったようにテストすることをお勧めします...

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









1. まず、Kijiale でレンダリングするデザインプランを開きます。 2. 次に、レンダリング メニューでトップ ビュー レンダリングを開きます。 3. 次に、トップ ビュー レンダリング インターフェイスのパラメーター設定で [直交] をクリックします。 4. 最後に、モデルの角度を調整した後、[今すぐレンダリング]をクリックして直交上面ビューをレンダリングします。

Vue ページのレンダリングは非同期です。 Vue は非同期レンダリングを使用します。これにより、パフォーマンスが向上します。非同期更新が使用されない場合、データが更新されるたびに現在のコンポーネントが再レンダリングされます。パフォーマンス上の理由から、Vue はこの一連のデータ更新後にビューを非同期的に更新します。

Vue エラー: v-html を使用して動的 HTML コードをレンダリングできません。解決方法は?はじめに: Vue 開発では、リッチ テキスト コンテンツや動的に生成されたユーザー入力を表示するために、HTML コードを動的にレンダリングする必要があることがよくあります。 Vue は、この関数を実装するための v-html ディレクティブを提供します。ただし、v-html を使用して動的 HTML コードを正しくレンダリングできない問題が発生する場合があります。この記事では、この問題の原因を調査し、解決策を提供します。問題の説明: Vue で v を使用すると、

Vue エラー: v-html を正しく使用して HTML コードをレンダリングできません。解決方法は? Vue は、インタラクティブなユーザー インターフェイスの構築に役立つ人気のある JavaScript フレームワークです。 Vue では、v-html ディレクティブを使用して HTML コードをテンプレートにレンダリングできます。ただし、v-html を使用して HTML コードを正しくレンダリングできないという問題が発生する場合があります。この記事では、この問題の解決に役立ついくつかの一般的な原因と解決策について説明します。まず考えられる理由としては、

Vue3 では、v-for がリスト データをレンダリングする最良の方法であると考えられています。 v-for は、開発者が配列またはオブジェクトを反復処理し、項目ごとに HTML コードを生成できるようにする Vue のディレクティブです。 v-for ディレクティブは、開発者が利用できる最も強力なテンプレート ディレクティブの 1 つです。 Vue3 では、v-for 命令がさらに最適化され、より使いやすく、より柔軟になりました。 Vue3 の v-for ディレクティブの最大の変更点は、要素のバインドです。 Vue2 では、v-for ディレクティブを使用します。

Vue を使用して画像のグレーディングとレンダリング処理を実現するにはどうすればよいですか?概要 最新の Web アプリケーションの開発において、画像処理は非常に一般的な要件です。人気の JavaScript フレームワークである Vue.js を使用すると、画像のグレーディングとレンダリング処理を非常に簡単かつ効率的に実装できます。この記事では、Vue.js を使用して画像のグレーディングとレンダリング処理を実装する方法をコード例とともに示します。ステップ 1: Vue インスタンスを作成する まず、イメージのデータとロジックを管理するために Vue インスタンスを作成する必要があります。 HTで

再描画とリフローがレンダリング段階に及ぼす影響: 誰がより重要ですか? Web ページがレンダリングされるとき、ブラウザは一連の操作を特定の順序で実行して、ページのコンテンツを表示します。そのうち、再描画とリフローはレンダリング プロセスの 2 つの重要なステップです。この記事では、再描画とリフローがレンダリング段階に及ぼす影響を調査し、その重要性を分析します。再描画とリフローの意味と違い レンダリングに対する再描画とリフローの影響を理解する前に、まずそれらの意味と違いを理解しましょう。再描画とは、要素のスタイルが変更されることを指しますが、要素には影響しません。

Canvas レンダリング モードの原理と実装を理解するには、具体的なコード例が必要です。まず、Canvas が HTML5 によって提供される描画 API であることを明確にする必要があります。これにより、ブラウザで JavaScript を使用してグラフィックス、アニメーション、およびその他の視覚効果。キャンバスは、2D レンダリング モードと WebGL レンダリング モードの 2 つのレンダリング モードを使用して描画できます。 2D レンダリング モードは Canvas のデフォルト モードで、HTML5 の Canvas 要素の 2D コンテキストを使用して画像を描画します。
