「ページがレンダリングを開始する前に必要なものは、同じサーバーからのものでなければならない」のルールは一般的に適用されますあなたのサーバーまたはその他の小さなリソース-DNSルックアップに1秒未満の顕著な時間がかかる状況(オブジェクトが多数のドメインに散らばっている場合、すぐに追加される可能性があります)。GoogleのjQueryキャッシュや他のライブラリなどの一般的なパブリックリソースを使用すると、訪問者のブラウザーが既にDNSルックアップを実行している可能性が高くなります(他のサイトがそのサービスのコンテンツを参照しているため)転送を行う必要があります(または、リクエストが行われた場合、短い「304-not modified」レスポンスが返される場合があります)。オブジェクトの完全なダウンロードが必要な場合でも、ほとんどのユーザーにとって、Googleのコンテンツ配信ネットワークは小規模な操作よりも高速です。
1つの関連ルール:ページの正しい機能に必要ではないオブジェクト(ユーザーが見るように)は、メインHTTP応答で可能な限り遅く参照される必要があります。たとえば、広告/統計サービスに必要なスクリプト(例:Googleアナリティクスとその同類)-ユーザーにできるだけ早くコンテンツを提供し、本当に興味のあるバックグラウンドのものをロードします。ホストファイルで127.0.0.1にマッピングすることにより、いくつかの広告/統計サービスをブロックしました。それらはしばしば遅すぎるため、スクリプトを待機している間、それらを参照するサイトが空白ページを表示するだけです後でそれらを参照することで、私がそこにいるコンテンツを読むことができますが、他のものはバックグラウンドで動いています。
静的コンテンツに対するCookieのないドメインの有用性は規模の問題です。Cookieに1つの10バイトセッションIDと1日あたり1万人の訪問者が1訪問あたり最大20個の静的オブジェクトをリクエストしている場合、1か月あたり最大118Mバイトの帯域幅(20 * 20 * 10000 * 31/1024/1024)しか節約できません。一方、サイトがCookieに1キロバイトまたは2キロバイト相当のものを保持している場合、特にユーザーが低速接続を介してサイトにアクセスする場合(モバイルへのテザリングによるGPRSまたは-高干渉エリアでの混雑したWi-Fiリンク)または1日あたり数百万の訪問がある場合。
要約すると、ページが私の設定をレンダリングする前にロードする必要があるスクリプトの場合は次のようになります。
- ajax.googleapis.com、または同様のもの
- 呼び出しページの元のホスト名
- 静的なCookieのないドメイン
初期ページのレンダリングに不可欠ではないリソースについては、可能な限り遅く参照し、上記の設定リストを逆にします(ただし、元のホスト名とCookieのないドメインの違いは、大規模に運用している場合を除き、ほとんど重要ではありません)。
With common public resources ... there is a good chance that your visitor's browser has already done that DNS lookup today
個人的には、自分のサイトでこれに頼るのは気が進まないでしょう。できるだけ多くの状況で合理的に可能な限り高速にしたいと思います。とにかく、あなたは良い点を挙げます。+1