ご存知の方もいらっしゃるかもしれませんが、Firefox/ChromeにはXmlHttpRequestオブジェクトによって開始されるリクエストのキャッシュに関する問題がいくつかあります。これらの問題は、ブラウザが厳密にルールに従わず、新しいXSLTファイル(たとえば)のためにサーバーに移動しないことを意味します。レスポンスにExpiresヘッダーがありません(パフォーマンス上の理由から、使用できません)。ChromeでXmlHttpRequestのローカルキャッシュをバイパスするようにFirefoxで可能ですか?
Firefoxには、XHRオブジェクトの "channel"に追加のパラメータがあり、これに値Components.interfaces.nsIRequest.LOAD_BYPASS_CACHEを指定すると、明示的にサーバーに移動します。
Chromeのようなものがありますか?
私は即座に誰も停止させてください。 GETパラメータまたはランダムな整数の値としてタイムスタンプを追加することをお勧めします。サーバが別のURL要求を受け取らないようにしたいと思います。元のURLを取得します。理由は、単純な静的ファイルの要求が多すぎてサーバーがクライアントに必要以上のデータを送信しないようにすることです。
生成されたGETパラメータ( '?forcenew = 12314'など)を使用して静的ファイルをヒットした場合、最初に200回の応答が返され、ターゲットの静的ファイルがクライアントのバージョンと同一である場合、常に304を返す要求を出したいと思います。これは、どのようにWebブラウザがすぐに動作するのかはまだまだですが、XHRオブジェクトは、ファイルが変更されたかどうかを尋ねるためにサーバーにまったく移動しない傾向があります。
私は、この賞金の終わりが私たちの解決策にどのように影響を与えたくないので、私たちがそれを解決する方法を入れるのを待っていたかったのです。私たちはあなたが示唆したことを正確に行いました:)現時点では、私たちはGETを生成するWebサイトの "再発行"を、その時点のタイムスタンプと共に実行します。私は実際に他の方法を参照してください... –
タイムスタンプの良いもの - 仕事で私たちはSubversionからgitへの移行について議論しており、私はgitにリビジョン番号がないことを心配しています。多分私たちはタイムスタンプと一緒に行かなければなりません。 :-) – CodeReaper