Rumah >hujung hadapan web >tutorial js >Bolehkah Imej Dimuatkan Secara Asynchronous dengan jQuery?

Bolehkah Imej Dimuatkan Secara Asynchronous dengan jQuery?

Susan Sarandon
Susan Sarandonasal
2024-11-12 03:43:02884semak imbas

Can Images Be Loaded Asynchronously with jQuery?

Memuatkan Imej Tak Segerak dengan jQuery

Soalan:

Mencuba memuatkan imej luaran secara tak segerak menggunakan jQuery dengan kod berikut:

$.ajax({ 
   url: "http://somedomain.com/image.jpg", 
   timeout:5000,
   success: function() {

   },
   error: function(r,x) {

   }
});

menghasilkan respons ralat. Adakah pemuatan imej tak segerak mungkin dengan jQuery? Jika tidak, bagaimanakah imej boleh dimuatkan secara tak segerak?

Penyelesaian:

Pemuatan imej tak segerak memang boleh dilakukan dengan jQuery. Walau bagaimanapun, kaedah $.ajax() tidak sesuai untuk tugas ini. Sebaliknya, pendekatan pilihan adalah untuk mencipta elemen imej baharu secara dinamik dan melampirkan pengendali acara padanya:

var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg')
    .on('load', function() {
        if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
            alert('broken image!');
        } else {
            $("#something").append(img);
        }
    });

Kaedah ini menggunakan mekanisme pemuatan imej HTML5 asli, yang mencetuskan acara pemuatan apabila imej telah sepenuhnya dimuatkan. Dengan menyemak sifat lengkap, naturalWidth dan naturalHeight, anda boleh menentukan sama ada imej telah berjaya dimuatkan dan mengelakkan amaran imej rosak.

Atas ialah kandungan terperinci Bolehkah Imej Dimuatkan Secara Asynchronous dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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