2016-08-04 3 views
0

私は画像 'img.png'にコンテンツ 'A'を持ちます。このimgの内容を 'B'にします。すべてvia Ajax。この「img.png」をimg srcタグに入れようとすると、「B」の代わりに「A」の内容が表示されますが、ページをリロードすると「B」が正しく表示されます。 OBS:明らかにそれは簡略化され、集計されたケースですが、いくつかの非常によく似たものが私に起こっています。助けてください。"img.png"を変更した後、img src = 'img.png'タグは引き続き古い "img.png"を取得します

+0

ブラウザのキャッシュを... URLが何らかの形で変更、またはあなたが出力適切なヘッダを持つもともとの画像がない限り、ブラウザが画像をキャッシュし、「ああ、私は/ /画像を取得しています参照して自由ですkittens.jpg、私はすでにそれを先に取り込んだので、私は新しいコピーを取り込むことを煩わしません "。 –

+0

私はそんなことを想像しました。ヘッダーを変更する解決策を私に教えてもらえますか? –

答えて

-1

イメージは同じURLを「再利用」しているため、ロジックではイメージURLにバージョン番号またはタイムスタンプの付いたクエリ文字列を追加する必要があります。また、簡素化:

timestamp = Date.now(); 

img.src = sitename="/image.png?"+ timestamp; 
+1

私はキャッシュを破ることは素晴らしいアイデアだとは思わない。 –

+0

私は同意するかもしれません。いずれも異なるイメージに同じURLを使用していませんが、ここではユースケースを記述しませんでした。 ;) –

+0

一般的なアプローチは、バージョン番号を追加することです。イメージが変更されたときに更新することができます。ファイル名を変更する必要はありませんが、キャッシュはまだ動作します –

関連する問題