0

アップロード後にページ上の画像を更新するのに問題があります。マルチパート画像を非表示の iframe に投稿しています。次に、JavaScript コールバックを使用して元の画像を変更します。時々機能しますが、常に機能するとは限りません。

効果なしで URL に追加しようとしたため、キャッシュの問題ではありません。Chrome と Firefox の間でも一貫しているので、ブラウザーを疑うことはありません。

いずれの場合も、ページ全体を更新すれば正しいです。

Chromeで要素を調べると、画像が配列として表示されているようですか? 誰かが何が起こっているのか説明してもらえますか?

ありがとう

サーブレットのアップロードは次で終了します (iframe 内):

<script>parent.changeImage('/cdn/orig/prof-1.gif')</script>

どの呼び出し:

function changeImage(image){
    $("#store-image").attr('src', '');
    var ts = new Date().getTime();
    $("#store-image").attr('src', image+"?"+ts);                
}

その後、数回の読み込みの後、Chrome インスペクションは次のように表示します。

Frames
    file.jsp
        images
            image-1.gif
            image-1.gif
            image-1.gif
            image-1.gif
            image-1.gif

それぞれの横に異なるサムネイルがあります。

javascript が配列を作成するのはなぜですか?

4

2 に答える 2

1

アップロードするたびに画像名を変更してみませんか? あなたが直面している問題は、本当に氷山の一角にすぎません。Web サーバーは静的コンテンツをキャッシュしますが、このキャッシュが更新されるまでに時間がかかります。一部のブラウザーは、静的コンテンツをかなり永続的にキャッシュします。一部のキャッシング プロキシは同じことを行います。

ファイル名を変更したくない場合は、少なくともいくつかのインクリメント パラメータを img src に追加してください。myimage.gif のように?1235698

于 2013-02-27T16:23:02.863 に答える
0

解決したかも…

サーバー側では、古いファイルを同じファイル名で上書きすることに頼っていました。ファイルシステムの遅延が原因で、プログラムに関する限り書き込みが完了していても、ブラウザーは新しいファイルが利用可能になる前に古いファイルを取得できる場合があったと思います。

最初に古いファイルを削除するようにコードを変更し、次にサーバーが新しいファイルを同じ名前で書き込みます。これにより、ブラウザーが古いブラウザーを取得するのを停止し、代わりに新しいブラウザーがダウンするのを待ちます。Chromeもファイルを何度もリストしなくなりました...

見てみましょう。

于 2013-02-27T16:14:47.100 に答える