ホームページ >ウェブフロントエンド >jsチュートリアル >フロントエンドのパフォーマンス最適化についての深い理解: ネットワークからレンダリングまで
リソースのマージ: CSS ファイルと JavaScript ファイルをマージすることでリクエストの数を減らします。
インライン リソース: 小規模な CSS および JavaScript の場合は、HTML に直接インライン化します。
サーバー側の構成、テキスト リソースの圧縮、送信量の削減。
Cache-Control などの HTTP キャッシュ ヘッダーを使用して、適切なキャッシュ戦略を設定します。
画像やビデオなどに適した、ビューポートに入る直前のリソースのみを読み込みます。
<img src="placeholder.jpg" data-src="real-image.jpg" alt="フロントエンドのパフォーマンス最適化についての深い理解: ネットワークからレンダリングまで" > <h4> Preloading and prefetching </h4> <p>Use <link rel="preload"> to load critical resources in advance.<br> Use <link rel="prefetch"> to prefetch non-critical resources.</p> <h3> 3. Rendering optimization </h3> <h4> Critical CSS </h4> <p>Inline the CSS required for the first screen rendering in the HTML head to avoid blocking rendering.</p> <h4> Reduce CSS and JavaScript blocking </h4>
<script async src="script.js"></script>
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker .register('/sw.js') .then(registration => console.log('SW registered:', registration)) .catch(error => console.error('SW registration failed:', error)); }); }
動的インポート (import() 式) を使用してコード ブロックをオンデマンドで読み込み、初期読み込み時間を短縮します。
button.onclick = async () => { const module = await import('./lazyModule.js'); module.default(); };
SPA アプリケーションでは、Vue Router の遅延読み込みなど、フレームワークによって提供されるルートレベルのコード分割機能を使用します。
// Vue Router example const Foo = () => import('./Foo.vue'); const routes = [ { path: '/foo', component: Foo }, ];
を使用します。要素または srcset 属性を使用して、デバイスのピクセル比またはビューポート サイズに基づいてさまざまな解像度の画像を提供します。
<picture> <source srcset="img/low-res.jpg" media="(max-width: 600px)"> <source srcset="img/high-res.jpg" media="(min-width: 600px)"> <img src="img/fallback.jpg" alt="フロントエンドのパフォーマンス最適化についての深い理解: ネットワークからレンダリングまで"> </source></source></picture>
時間のかかるコンピューティング タスクを Web ワーカーに移動して、メイン スレッドのブロックを回避し、UI の応答性を維持します。
// main.js const worker = new Worker('worker.js'); worker.postMessage([1024, 512]); // worker.js self.onmessage = function(e) { const result = e.data[0] * e.data[1]; self.postMessage(result); };
メモリ リークを防ぐために、未使用のタイマー、イベント リスナー、大規模なデータ構造を定期的にクリーンアップします。
<img src="placeholder.jpg" data-src="real-image.jpg" alt="フロントエンドのパフォーマンス最適化についての深い理解: ネットワークからレンダリングまで" > <h4> Preloading and prefetching </h4> <p>Use <link rel="preload"> to load critical resources in advance.<br> Use <link rel="prefetch"> to prefetch non-critical resources.</p> <h3> 3. Rendering optimization </h3> <h4> Critical CSS </h4> <p>Inline the CSS required for the first screen rendering in the HTML head to avoid blocking rendering.</p> <h4> Reduce CSS and JavaScript blocking </h4>
<script async src="script.js"></script>
ユーザー エクスペリエンスを測定するための重要な指標である、LCP (最大コンテンツ ペイント)、FID (最初の入力遅延)、CLS (累積レイアウト シフト) などの Web Vitals メトリクスに焦点を当てます。
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker .register('/sw.js') .then(registration => console.log('SW registered:', registration)) .catch(error => console.error('SW registration failed:', error)); }); }
以上がフロントエンドのパフォーマンス最適化についての深い理解: ネットワークからレンダリングまでの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。