Melaksanakan Kelewatan Masa dalam JavaScript
Dalam senario tertentu, adalah perlu untuk menambah kelewatan dalam pelaksanaan skrip untuk peningkatan antara muka pengguna atau pengoptimuman prestasi. Dalam konteks ini, kami akan meneroka cara memperkenalkan kelewatan masa dalam JavaScript untuk menangani kes penggunaan tertentu.
Kes Penggunaan:
Andaikan anda mempunyai fungsi togol imej apabila mengklik imej menukarnya kepada imej lain, dan apabila diklik sekali lagi, ia kembali kepada imej asal. Untuk meningkatkan pengalaman pengguna, anda ingin memasukkan kelewatan selama 1 saat sebelum imej awal (img.jpg) muncul semula selepas mengklik imej kedua (img_onclick.jpg).
Penyelesaian:
Fungsi setTimeout() menyediakan pendekatan serba boleh untuk memperkenalkan kelewatan dalam JavaScript. Sintaksnya ialah:
setTimeout(function, milliseconds)
Dalam penyelesaian ini, kami akan menggunakan setTimeout() untuk membuat kelewatan 1000 milisaat (1 saat) sebelum berbalik kepada imej asal img.jpg. Berikut ialah kod yang diubah suai:
<code class="javascript">$(".trigger").toggle(function () { $(this).addClass("active"); $(".trigger").find('img').prop('src', 'http://localhost:8888/images/img_onclick.jpg'); }, function () { $(this).removeClass("active"); // Added setTimeout to introduce a delay setTimeout(function() { $(".trigger").find('img').prop('src', 'http://localhost:8888/images/img.jpg'); }, 1000); // 1000 milliseconds delay });</code>
Dengan memasukkan perubahan ini, apabila imej kedua (img_onclick.jpg) diklik, skrip akan menunggu selama 1 saat sebelum memaparkan imej asal (img.jpg), dengan berkesan menambah kelewatan seperti yang dikehendaki.
Perhatikan bahawa terdapat kaedah alternatif untuk mencapai hasil yang serupa, tetapi untuk kes penggunaan khusus ini, setTimeout() menyediakan penyelesaian yang mudah dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kelewatan Masa Tertentu dalam JavaScript untuk Kes Penggunaan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!