Rumah > hujung hadapan web > tutorial js > Mengapa Imej Saya Dimuatkan Secara Dinamik Tidak Mengemas kini Tanpa Muat Semula Halaman?

Mengapa Imej Saya Dimuatkan Secara Dinamik Tidak Mengemas kini Tanpa Muat Semula Halaman?

DDD
Lepaskan: 2024-12-11 11:42:10
asal
973 orang telah melayarinya

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

Penyelesaian Masalah: Imej Tidak Dikemas Kini Secara Dinamik

Apabila mengakses pautan yang menyediakan imej baharu setiap kali ia diminta, anda mungkin menghadapi masalah apabila imej dimuatkan dalam latar belakang gagal dikemas kini pada halaman melainkan anda memuat semula halaman.

Kod di bawah menggambarkan isu:

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);
}
Salin selepas log masuk

Dalam senario ini, imej tidak dikemas kini pada halaman walaupun pengepala permintaan menunjukkan bahawa caching dilumpuhkan:

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

Penyelesaian: Pemecah Cache

Untuk memaksa muat semula imej, tambahkan pemecah cache pada penghujung URL:

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

Dengan menambahkan cap masa semasa, anda memastikan penyemak imbas akan mendapatkan semula imej daripada pelayan dan bukannya menggunakan versi cache. Teknik ini akan membolehkan imej dikemas kini secara dinamik pada halaman seperti yang dijangkakan.

Atas ialah kandungan terperinci Mengapa Imej Saya Dimuatkan Secara Dinamik Tidak Mengemas kini Tanpa Muat Semula Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan