2

クライアントが JS を多用するアプリのバグを報告し、それを修正しましたが、クライアントのブラウザーはキャッシュされたコピーを引き続き使用しています。これは頻繁に発生し、クライアントにブラウザのキャッシュをフラッシュするように依頼することは、非常にローテクで面倒なことのように思えます。

回避策は認識していますが、 RequireJS?ver=xxxを使用しているため、このようなハックを適用するのは簡単ではありません。

HTTP キャッシュ制御は機能しますか? ただし、IIS は JS ファイルの変更をすぐに取得せず、HTTP ヘッダー (最終変更) に最新の変更が反映されていないことに気付きました。

ETag の方がうまく機能しますか? IIS で最後に変更されたものよりも良いか悪いか?

他の解決策はありますか?ありがとう

4

1 に答える 1

5

RequireJS には、使用できるキャッシュ無効化プロパティがあります -:

require.config({
    urlArgs: "bust=" + (new Date()).getTime()
});

編集 -: ただし、Ian が以下で指摘したように、ドキュメントでは、製品コードにこのように使用しないことをお勧めします。

新しいコミットを本番環境にプッシュするたびに、代わりに特定のバージョン番号を追加できます。

require.config({
        urlArgs: "ver=1.1.1"
    });
于 2013-08-09T18:36:44.347 に答える