検索
ホームページウェブフロントエンドhtmlチュートリアルCSS 非同期読み込みテクノロジーはページの rendering_html/css_WEB-ITnose には影響しません

この記事では、スタイル シートを非同期的にダウンロードして、ダウンロードによってページのレンダリングがブロックされるのを防ぎ、それによって訪問者ができるだけ早く情報コンテンツを取得できるようにする手法を説明します。

警告! 私は善意でこれを投稿していますが、これを読んだ人に以下で遭遇する問題を知らせる責任はありません。コミュニティからはすぐに多くのフィードバックが寄せられました (いくつかのフィードバックには感謝しています)。そして、このテクノロジーが私が期待していたほど安定していないことがますます明らかになり、テストと活用に成功した私とは異なり、多くの開発者が IE と Firefox で問題を経験していましたが (Chrome と Safari で F F テストがクラッシュしました)、他の開発者は での成功を報告しました。クロムとサファリ。今の私のアドバイスは、製品には使用しないことです。このフィードバックに対処し、関連情報を含めてこの記事を更新する予定です。

これらのテクニックの背後にある原理は新しいものではありません。たとえば、Filament 技術グループは、CSS とフォントのロードに関する多くのコンテンツを公開しています。この記事は、ノンブロッキング リソースのロードに関する私の考えと意見を記録するために書きました。

非同期スタイルのダウンロードをトリガーするコツは、 要素を使用し、media 属性に使用できない値を設定することです (ここでは media="none" を使用しましたが、他の値も使用できます)。メディア クエリが false と評価された場合でも、ブラウザはスタイル シートをダウンロードしますが、ページをレンダリングする前にスタイル シート リソースが利用可能になるのを待ちません。

スタイルシートをダウンロードしたら、スタイル ルールを適用できるようにメディア属性を使用可能な値に設定する必要がありますHTML ドキュメントの onload イベントを使用して、メディア属性を all に切り替えることができます:

CSS をロードするこの方法は、標準的な方法よりもはるかに速く訪問者に有益な情報を提供します。重要な CSS は通常のブロック方法で読み込むことができます (または、究極のパフォーマンスを得るためにインラインで処理することもできます)。一方、重要でないスタイルは、解析/レンダリング プロセス中にゆっくりとダウンロードしてレンダリングでき、後の段階で適用されます。

この手法では JavaScript を使用しますが、JavaScript を実行できないブラウザを処理するには、同等のブロック 要素を

このテクニックには副作用があります。ノンブロッキング スタイル シートの読み込みが完了すると、ドキュメントが再描画されて、定義されている新しいスタイル ルールが反映されます。新しいスタイルをページに挿入するとコンテンツのリフローがトリガーされますが、これが問題となるのは履歴キャッシュがないページの最初の読み込み時のみです。パフォーマンスに関連するものと同様に、リフローのコストを制御する必要性が潜在的な速度の利点を上回る場合は、必要な調整を行う必要があります。

フォントを読み込むには非ブロッキング CSS を使用してください

フォントの最初の描画のパフォーマンスが問題です。フォントはリソースをブロックしており、フォントのダウンロード中に適用されているテキストが非表示になります。上の例の非ブロッキング リンクを使用すると、表面のレンダリングをブロックせずに、フォント データを含むスタイルシートをバックグラウンドでダウンロードできます:

font.css には Base64 が含まれています-エンコードされた WOFF フォント。

@font-face { フォントファミリー: メリウェザー; フォントスタイル: 通常; フォントの太さ: 400; src: local('data:application/x-font-woff;charset=utf) -8;base64,...')}

main.css には、サイトに適用する必要があるすべてのスタイル ルールが含まれています。以下はフォントの宣言です:

body { font-family: Merriweather, "Lucida Grande", ...;}

フォントのダウンロード中に、最初に一致するフォールバック フォント (ここでは Lucida Grande) が使用されますページのコンテンツをレンダリングします。 フォント スタイルシートが適用されると、避けられないリフローが可能な限り目立たないよう、フォールバック フォントが優先フォントと同様のレイアウト特性を共有するように努めます。

Chrome の Google アナリティクス デバッガー サイトを使用して、シミュレートされた 3G ネットワーク接続でブロッキングと非ブロッキングをテストしました。ローカル テストでは、以下に示すネットワーク ダイアグラムが生成されました。ノンブロッキング テクノロジを使用すると、DOMContentLoaded が 450 ミリ秒早くトリガーされ、リソースのダウンロードが高速になることに注意してください。

3G ネットワークをシミュレートするグラフィック。ブロックされたフォントが上部に表示されます。下部にはノンブロッキング フォントが表示されます。

これをテスト サーバーにデプロイし、3G 接続で webpagetest コンストラクトを実行すると、次のタイムラインが生成されました:

3G タイムライン。ブロッキング フォントは上部に表示され、非ブロッキング フォントは下部に表示されます。

どちらの方法もページを完全にレンダリングするのに 2.8 秒かかりましたが、非ブロック方法は通常のブロック方法よりも 1 秒早く描画されました。メイン スタイルシートをインラインで使用して同じテストを実行すると、フォントの処理にノンブロッキング CSS が適用されている場合に 0.7 秒の時間的利点が示されます:

メイン CSS コンテンツの 3G タイムライン。ブロッキング フォントを上部に表示し、非ブロッキング フォントを下部に表示します。

このテクニックはフォントに対して非常にうまく機能しますが、フォントの読み込みをより細かく制御できる新しい CSS フォント読み込みモジュールにも注目することをお勧めします。

概要

フォントの読み込みはノンブロッキング技術を適用する例ですが、JavaScript 拡張スタイルをコア CSS から分離するなど、他の目的にも使用できます。

私は、スタイルをフレーム (コア レイアウト) とプレゼンテーション (その他すべて) に分割するというアイデアの実験を開始しました。これにより、表示されるスタイル データがしばらく遅延する一方で、重要なページ レイアウトがページ レンダリングをブロックできるようになります。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTML、CSS、およびJavaScriptの役割:コアの責任HTML、CSS、およびJavaScriptの役割:コアの責任Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール