ホームページ >ウェブフロントエンド >htmlチュートリアル >フロントエンドのパフォーマンス最適化の学習に備えて、HTML ページのレンダリング プロセスを理解する_HTML/Xhtml_Web ページの制作

フロントエンドのパフォーマンス最適化の学習に備えて、HTML ページのレンダリング プロセスを理解する_HTML/Xhtml_Web ページの制作

WBOY
WBOYオリジナル
2016-05-16 16:40:411511ブラウズ

最近、フロントエンドのパフォーマンスの最適化について学んでいます。適切な薬を処方し、パフォーマンスのボトルネックを見つけるには、ページのレンダリング プロセスを理解する必要があります。ここで私が見たものをいくつか紹介します。
参考: レンダラーについて理解する
ページのレンダリングには次の特徴があります:
•シングルスレッドのイベントポーリング
•明確に定義された、継続的で順序立てた操作 (HTML5) )
•単語のセグメンテーションと DOM ツリーの構築
•リソースのリクエストとプリロード
•レンダリング ツリーの構築とページの描画
具体的には:
HTML をnetwork 対応するバイトに達すると、DOM ツリーの構築が開始されます。これは、UI を更新するブラウザーのスレッドが担当します。次の状況が発生した場合、DOM ツリーの構築はブロックされます。
•HTML 応答フローがネットワークでブロックされている
•アンロードされたスクリプトがある
•スクリプト ノードが検出されましたが、このスタイル ファイルがまだアンロードされています
レンダリング ツリーは DOM ツリーから構築されており、スタイル ファイルによってブロックされます。
シングルスレッドのイベントポーリングに基づいているため、スクリプトやスタイルがブロックされていない場合でも、これらのスクリプトやスタイルが解析、実行、適用されると、ページのレンダリングがブロックされます。
ページ レンダリングをブロックしないいくつかの状況:
• 定義された defer 属性と async 属性
• 一致するメディア タイプ スタイル ファイルがない
• パーサーに渡されなかった スクリプト ノードの挿入またはスタイル ノード
以下に例 (完全なコード) を示します :

コードをコピー
コードは次のとおりです。




こんにちは!

<script> <br> document.write('<script src="other.js">&lt ;/ scr' 'ipt>'); <br> </script>
またこんにちは!

example.css ファイルの読み込みが完了すると、レンダリング ツリーが完成し、インライン スクリプトを実行できるようになります。その後、パーサーは other.js によってブロックされます。パーサーがブロックされると、ブラウザーは最初のレンダリング リクエストを受信し、ページに「こんにちは!」が表示されます。このステップは今の状況と一致しています。次に:





コードをコピーします

コードは次のとおりです:


; こんにちは!
document .write('
パーサーは last.js を見つけましたが、プリローダーがそれをロードしたばかりなので、ブラウザのキャッシュにあるため、last.js はすぐに実行されます。その後、ブラウザはレンダリング リクエストを受信し、ページに「こんにちは」と表示されます。
前後の 2 つの状況を比較することで、誰もがページ レンダリングについて一定の理解を深め、対象を絞った最適化を行うことができることを願っています。おやすみ! (了)^_^

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:HTMLドロップダウンボックスのSELECTオプションを変更する各種方法_HTML/Xhtml_Webページ制作次の記事:HTMLドロップダウンボックスのSELECTオプションを変更する各種方法_HTML/Xhtml_Webページ制作

関連記事

続きを見る