ホームページ >ウェブフロントエンド >jsチュートリアル >ページをリロードしないと動的にロードされた画像が更新されないのはなぜですか?

ページをリロードしないと動的にロードされた画像が更新されないのはなぜですか?

DDD
DDDオリジナル
2024-12-11 11:42:10973ブラウズ

Why Isn't My Dynamically Loaded Image Updating Without a Page Reload?

トラブルシューティング: 画像が動的に更新されない

要求されるたびに新しい画像を提供するリンクにアクセスすると、画像がページをリロードしない限り、ページの背景は更新されません。

以下のコードは、問題:

var newImage = new Image();
newImage.src = "http://localhost/image.jpg";

function updateImage()
{
    if(newImage.complete) {
        document.getElementById("theText").src = newImage.src;
        newImage = new Image();
        number++;
        newImage.src = "http://localhost/image/id/image.jpg?time=" + new Date();
    }

    setTimeout(updateImage, 1000);
}

このシナリオでは、リクエスト ヘッダーがキャッシュが無効であることを示しているにもかかわらず、ページ上の画像が更新されません:

HTTP/1.x 200 OK
Cache-Control: no-cache, must-revalidate
Pragma: no-cache

解決策: キャッシュブレーカー

画像を強制的に更新するには、キャッシュブレーカーをファイルの末尾に追加します。 URL:

newImage.src = "http://localhost/image.jpg?" + new Date().getTime();

現在のタイムスタンプを追加すると、ブラウザーはキャッシュされたバージョンを使用する代わりにサーバーから画像を取得します。この手法により、ページ上の画像を期待どおりに動的に更新できるようになります。

以上がページをリロードしないと動的にロードされた画像が更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。