Bagaimana untuk Mencegah Pelbagai 'saiz semula' Pencetus Peristiwa dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-11-11 04:48:02
asal
464 orang telah melayarinya

How to Prevent Multiple 'resize' Event Triggers in JavaScript?

Menguruskan Berbilang Pencetusan 'saiz semula' Acara

Pembangun sering menghadapi isu mengendalikan berbilang pencetus peristiwa 'saiz semula' semasa proses mengubah saiz. Ini boleh membawa kepada tingkah laku yang tidak diingini atau ketidakcekapan. Memahami cara menunggu 'tamat' acara 'ubah saiz' adalah penting untuk memastikan hanya tindakan yang diingini dilaksanakan sekali.

Satu pendekatan biasa, seperti yang ditunjukkan dalam sampel kod yang diberikan, adalah menggunakan $ (tetingkap).resize(function(){resizedw();}) kaedah. Walau bagaimanapun, kaedah ini mencetuskan fungsi resizedw() beberapa kali semasa proses mengubah saiz yang sedang dijalankan.

Untuk mengatasinya, kita boleh memanfaatkan kaedah setTimeout() dan clearTimeout(). Strategi ini membolehkan kami menetapkan kelewatan sebelum mencetuskan fungsi resizedw(). Dengan menetapkan tamat masa, sebagai contoh, 100ms, kita boleh menunggu jumlah masa tertentu untuk memastikan saiz semula telah selesai. Semasa kelewatan ini, sebarang peristiwa ubah saiz baharu akan 'menetapkan semula' pemasa, menjamin bahawa ia hanya dilaksanakan sebaik sahaja proses mengubah saiz benar-benar selesai.

Berikut ialah contoh kod untuk menggambarkan pendekatan ini:

function resizedw(){
    // Haven't resized in 100ms!
}

var doit;
window.onresize = function(){
  clearTimeout(doit);
  doit = setTimeout(resizedw, 100);
};
Salin selepas log masuk

Sampel kod ini boleh didapati di jsfiddle untuk kemudahan anda.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Pelbagai 'saiz semula' Pencetus Peristiwa dalam JavaScript?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan