問題:スクリプトをキャッシュするクロム(場合によっては他のブラウザ)には、
私はサイト上のページごとに異なるウィジェットをホストしています。
ウィジェットをレンダリングするために、クライアントはそのページにスクリプトタグを含めます。このスクリプトタグは、サイトのすべてのページにロードされ、コードが返すコードはページによって異なります。
このスクリプトがキャッシュされると、最終的に間違ったページのウィジェットが提供されます。私たちは、スクリプトを果たすとき
は今、私たちは時々、まだスクリプトをキャッシュするブラウザはまだレスポンスヘッダ
Cache-Control: max-age=0 Expires : 24 hours in the past
に設定してください。
QUESTION:
は、すべての場合にキャッシュを停止するか、我々は完全に異なるアプローチを取る必要があるとしているHTTPヘッダーを使用する方法はありますか?
UPDATE:大いに推奨topek
ヘッダはスクリプトの非キャッシュ可能性を向上させます。しかし、バック、フォワード、またはリロードボタンを使用しているときに(キャッシュで最も攻撃的であると思われるChromeでも)、スクリプトは引き続きキャッシュされます。実際に何かをクリックすれば、サーバからフェッチされます。
キャッシュを停止する唯一確実な方法は、ページロードごとに異なることが保証されているスクリプトソースを設定することです(esilijaとtejsの推奨)。
なぜjs urlリクエストにランダムなクエリ文字列パラメータを含めるだけではないのですか?またはdatetimeなどを添付しますか? – Tejs
はランダムな無意味なクエリ文字列を追加します..そうそうです: 'script.js?14091341049134'。 '+ new Date'から数値を生成します。これはミリ秒ごとに変化します。 – Esailija
必要な場合は、これを行うことができます。しかし、クライアントに単一のスクリプトタグを含めるよう求めるだけのシンプルさが好きです。代わりにあなたが提案したことをする数行のjsを含めるように頼むことができると思います。 – Hersheezy