2011-09-12 5 views
2

私のクライアントサイドのJSファイルのすべては、 "/js/myfile.js?v=3903948"のように、クライアントがブラウザキャッシュをクリアして取得する必要はありません更新されたファイルしかし、私が間違いなく更新プログラムを適用するたびに、少なくとも1人は古いバージョンを実行していて何らかのエラーが発生するという問題が発生します。私はこれがリリース中に既にページに入っていて、ブラウザをリロードする必要があると思っていましたが、これは以前私が以前はページにいなかったときに私に起こりました。私はライブサイトを閲覧し、古いコードを実行していました。新しいファイルを取得するには、そのページでブラウザを更新する必要がありました。不要なキャッシュ消去を防止するためのJavascriptファイルのバージョン管理

これはどうしてですか?

PS私はWin7でChromeを使用していましたが、以前はクライアントがすべてのブラウザでこれを報告していました。

+0

アプリケーションキャッシュを使用していますか? –

+0

@SimpleCoder nope –

答えて

2

メインWebページをキャッシュすることもできれば、そのページの古いバージョンがJSファイルの古いバージョンを要求している可能性があります。 JSファイルのバージョン管理は、実際にJSファイルを参照しているページをキャッシュできない場合や、キャッシュ時間が非常に短い場合に最適です。

+0

興味深い考えが、この場合、メインのWebページをキャッシュすることはできません。 2番目の考え..トーマスボラシェックへの私の応答を読んでください –

+0

@David Dimitriov - メインページ「キャッシュできません」とはどういう意味ですか?あなたはそれをどのように知っていますか、それをどのように保証していますか?ページの新しいバージョンはJSファイルの古いバージョンを要求できないので、どこかのキャッシングの問題です。問題はどこにあるのでしょうか? – jfriend00

+0

私はこれが問題だと思っています。私はこの近くを見る必要がある –

0

プロキシまたは一部のロードバランサが新しいコンテンツではなく古いコンテンツを提供しているようです。また、IIS/webserver設定で、これらのファイルがどのようにキャッシュ/期限切れになっているかをチェックしてください。

Fiddlerのようなツールを使用して、ワイヤで何が起こっているのかを確認できます。

+0

これらのいずれかが該当する可能性がありますが、私は個人的には今まで少なくとも一度これを経験したような気がします。技術的には許可されていないにもかかわらず、ブラウザ自体がJSファイルを参照する新しいHTMLページを要求していない状況があるようです。しかし、私はどのような状況でこれが起こる可能性があるかわからない –

1

ウェブページ自体がキャッシュされ、古いjavascriptバージョンを要求していることについてjfriend00に同意します。

これを防ぐには、ダウンロードする正確な(最新の)バージョン番号をサーバーに要求するか、javascript自体を要求して挿入するなど、ajax(Post)リクエストによってjavascriptファイルを読み込ませることができます。ページの先頭に

編集:私はそれは彼らが、その後、持っているクライアントのスクリプトが古い場合、ページを更新するためにそれらを強制的に期待していたバージョンのためのサーバーへの迅速なAJAX要求を行う例here

1

のために参照してください。

関連する問題