パフォーマンスの黄金律: エンドユーザーの応答時間のわずか 10% ~ 20% が HTML ドキュメントのダウンロードに費やされます。残りの 80% ~ 90% の時間は、ページ上のすべてのコンポーネントのダウンロードに費やされます。 ルール1: HTTPリクエストを減らす これは、イメージ マップ、CSS スプライト (長所と短所の両方)、インライン イメージ (data: URL モード、IE ではサポートされておらず、キャッシュできません)、およびスクリプトとスタイル シートのマージを使用することで実現できます。 ルール2: コンテンツ配信ネットワークを使用する アプリケーション Web サーバーがユーザーに近いほど、HTTP 要求の応答時間が短縮されます。 ルール3: Expiresヘッダーを追加する Expires ヘッダーは、Web サーバーが Web クライアントに、指定された時間までコンポーネントの現在のコピーを使用できることを通知するために使用されます。サーバーとクライアントのクロックが厳密に同期され、期限が切れた後にサーバー構成で新しい日付が提供される必要があります。 ルール4: コンポーネントを圧縮する HTTP 1.1から、 ルール5: スタイルシートを先頭に置く 白画面を避けるためのプログレッシブプレゼンテーション ルール6: スクリプトを一番下に置く HTTP 1.1 仕様では、ブラウザが各ホスト名から 2 つのコンポーネントを並行してダウンロードすることを推奨しており、スクリプトをダウンロードするときには並行ダウンロードは実際には無効になっています。 ルール7: CSS式を避ける この式メソッドは他のブラウザでは無視されますが、IE では便利なツールです。 IE でプロパティを設定して、ブラウザー間で一貫したエクスペリエンスを作成する機能。たとえば、IE [IE6、IE7 (Quirk)、IE8 (Quirk]] は min-width プロパティをサポートしていません。この問題は、次の式メソッドを使用して解決できます。 コードをコピー コードは次のとおりです。幅: 式(document.body.clientwidth<600?"600px": "auto"); 最小幅: 600px; 式の問題は、望んでいるよりも頻繁に評価されることです。これらは、ページがレンダリングされ、サイズが変更されるときだけでなく、ページがスクロールされたときや、ユーザーがページ上でマウスを移動したときにも評価されます。追跡するために、CSS 式にカウンターを追加できます。 コードをコピー コードは次のとおりです。P { 幅: 式(setCntr(),document.body.clientwidth<600?"600px": "auto"); 最小幅: 600px; } 式の代替: イベント ハンドラー コードをコピー コードは次のとおりです。関数setMinWidth(){ setCntr(); //評価の数を表示するために使用される var aElements = document.getElementsByTagName("p"); for(var i=0;i<aElements.length;i++){ aElements[i].runtimeStyle.width=(document.body.clientwidth<600?"600px": "自動"); } } if(1!=navigator.userAgent.indexOf("MSIE")){ ウィンドウの最小幅を設定します。 } これにより、ブラウザのサイズが変更されると幅が動的に設定されますが、最初にレンダリングされるときに段落のサイズが適切に設定されないため、ページでは「1 回限りの式」を使用して初期幅を設定する必要もあります。 ルール8: 外部のJavaScriptとCSSを使用する ルール9: DNSルックアップを減らす ルール10: JavaScriptを小さく保つ 合理化 vs. 難読化 vs. 圧縮 ルール11: リダイレクトを避ける Web サーバーがブラウザーにリダイレクトを送信すると、応答には 3xx 範囲のステータス コードが含まれます。これは、ユーザー エージェントが要求を完了するためにさらにアクションを実行する必要があることを示します。 リダイレクトは HTML ドキュメントのダウンロードに影響します。 ルール12: 重複したスクリプトを削除する ルール13: ETagを構成する ルール 14: Ajax をキャッシュ可能にする 最後に、この本の内容の概要をご紹介します。 |
<<: mysql5.6 マスタースレーブ設定と非同期の問題の詳細な説明
>>: HTML 基本コントロール入門_PowerNode Java アカデミー
コードをコピーコードは次のとおりです。 <input type="text"...
目次Oracle 分離レベルMySQL 分離レベル要約する多くの読者は、MySQL のトランザク...
目次1 ユーザー変数の概要2 ユーザー変数の定義3 ユーザー変数の使用3.1 セットを通した例3.2...
1. はじめにDocker には、タスクを構成する複数の Docker コンテナをオーケストレーショ...
ネガティブな距離は共感を意味します。序文(疑問の提起):プロダクトマネージャーは機能を把握します。機...
目次1. MySQLレプリケーションプロセス2. MySQLの遅延問題の分析3. プロモーション期間...
JavaScript ネイティブ コードの記述能力を高め、setTimeout() の使用を強化する...
目次1. proxy と Object.defineProperty の利点2. プロキシ監視オブジ...
Linux に MySQL をインストールするには、yum インストールとソース コード コンパイ...
Vue に限定されず、他の種類の SPA プロジェクトにも当てはまる問題がいくつかあります。 1....
ソフトウェア パッケージが存在しない場合は、インストールされているソフトウェアのソフトウェア ソース...
序文この記事では主に、MySQL で大規模なデータ テーブルのコピーの効率を向上させることに関する関...
序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...
サーバーサイドレンダリング (SSR) を使用する理由検索エンジンのクローラーが完全にレンダリングさ...
Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その...