Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memuatkan Imej Secara Asynchronously dengan jQuery?
Memuatkan Imej Secara Asynchronously dengan jQuery
Teknik pemuatan tak segerak adalah penting untuk meningkatkan prestasi halaman web dengan menghalang permintaan menyekat yang boleh melambatkan halaman rendering. Teknik ini menjadi amat berguna apabila memuatkan imej luaran yang mungkin mengambil masa untuk dimuatkan, yang berpotensi membawa kepada pengalaman pengguna yang tidak menentu.
Satu pendekatan biasa untuk memuatkan imej tak segerak ialah menggunakan kaedah $.ajax(). Walau bagaimanapun, perlu diingat bahawa kaedah ini mungkin tidak sesuai untuk memuatkan imej, kerana ia direka untuk mendapatkan semula data dan tidak dioptimumkan secara khusus untuk pengendalian imej.
Pendekatan Alternatif: Menggunakan Elemen Imej
Cara yang lebih cekap untuk memuatkan imej secara tidak segerak dengan jQuery adalah dengan mencipta elemen imej baharu secara dinamik. Begini cara untuk mencapainya:
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); } });
Kod ini mencapai perkara berikut:
Tamat Masa Tersuai Pelaksanaan
Pendekatan ini tidak termasuk tetapan tamat masa, yang penting untuk mengendalikan kemungkinan ralat 404. Untuk melaksanakan tamat masa tersuai, anda boleh memasukkan kod berikut:
var timeout = setTimeout(function() { alert('Image timed out'); }, 5000); // 5 seconds timeout img.on('load', function() { clearTimeout(timeout); // Clear the timeout once the image loads });
Menambah kod ini pada coretan sebelumnya memastikan bahawa jika imej tidak dimuatkan dalam tamat masa yang ditentukan (5 saat dalam kes ini), ia memaparkan amaran yang menunjukkan tamat masa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memuatkan Imej Secara Asynchronously dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!