2

YSLOW の提案: 静的コンポーネントの場合: 遠い将来の Expires ヘッダーを設定して、「期限切れにならない」ポリシーを実装します.... 遠い将来の Expires ヘッダーを使用する場合は、コンポーネントが変更されるたびにコンポーネントのファイル名を変更する必要があります。ヤフーで!多くの場合、このステップをビルド プロセスの一部にしています。バージョン番号は、コンポーネントのファイル名に埋め込まれています (例: yahoo_2.0.6.js)。 http://developer.yahoo.com/performance/rules.html

ほとんど静的なページのキャッシュを利用して、バージョンが変更されたときに js ファイルをリロードしたいと思います。.js ファイルのバージョン # を設定しましたが、main.html ページの Expires が将来に設定されているため、リロードされず、js ファイルがリロードされません。理想的には、サイトの新しいバージョンがリリースされたときに、ブラウザーに (心霊術を使用して) main.html をリロードするように指示したいと考えています。main.html ページを常にリロードすることはできますが、キャッシュのメリットが失われます。これはユーザーに対して自動的に行われる必要があるため、ctrl-F5 の回答は探していません。

答えは次のとおりだと思います: main.html はキャッシュできませんが、この問題を解決するために他の人が何をしているのか知りたいです。キャッシングとリロードのメリットを最大限に活用するにはどうすればよいですか。

ありがとう。

4

2 に答える 2

1

あなたの分析は正しいです。Webパフォーマンスのベストプラクティスは、静的コンポーネント(つまり、頻繁に変更されないコンポーネント)の有効期限がはるかに長いことを示唆しており、URLでバージョン番号を使用すると、これらの変更を適切に管理できます。

メインページ(main.html)の場合、遠い将来の有効期限を設定することはありません。代わりに、有効期限を設定したり、最小時間(+24時間など)に設定したりすることはできませんでした。

于 2011-12-28T03:34:48.763 に答える
0

ユーザーの読み込み時間を改善するか、サーバーの負荷を軽減するために、HTMLページをキャッシュする理由に依存すると思います。

有効期限が長い場合でも、実際にはクライアントで非常に長い間キャッシュされていないことがわかる場合があります (Yahoo の調査によると、ファイルはキャッシュに長時間保存されないことが示されています)。問題。

バックエンドの負荷を軽減する場合は、Varnish のようなプロキシが役立つかどうかを調べる価値があるかもしれません。つまり、リクエストされたときにオリジン サーバーからのページをキャッシュします。このようにして、より細かいレベルの制御でページがキャッシュされる期間を制御できます。

于 2012-01-04T09:50:37.127 に答える