Rumah > Artikel > hujung hadapan web > Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * **Bagaimanakah Saya Boleh Melaksanakan Pendikitan Mudah dalam JavaScript?** * **Apakah Cara Terbaik untuk Mendikit Fungsi JavaScript?** *
Pendikitan Mudah dalam JavaScript
Dalam JavaScript, pendikitan ialah teknik untuk mengehadkan pelaksanaan fungsi kepada selang masa tertentu. Ini berguna apabila anda ingin mengelak daripada membebankan sistem dengan panggilan fungsi yang berlebihan.
Pelaksanaan Pendikit Sedia Ada
Perpustakaan seperti lodash dan garis bawah menyediakan fungsi pendikit terbina dalam. Walau bagaimanapun, termasuk keseluruhan perpustakaan ini untuk tugas yang mudah boleh menjadi berlebihan.
Fungsi Pendikit Tersuai
Berikut ialah fungsi pendikit tersuai yang boleh digunakan sebagai penyelesaian kendiri:
<code class="javascript">function throttle(fn, threshhold, scope) { threshhold || (threshhold = 250); var last, deferTimer; return function () { var context = scope || this; var now = +new Date, args = arguments; if (last && now < last + threshhold) { // hold on to it clearTimeout(deferTimer); deferTimer = setTimeout(function () { last = now; fn.apply(context, args); }, threshhold); } else { last = now; fn.apply(context, args); } }; }
Penambahbaikan: Mengelakkan Perlaksanaan Pendua
Kod yang disediakan, walau bagaimanapun, mempamerkan isu di mana ia boleh menyalakan fungsi semula setelah selang pendikit telah berlalu. Untuk menangani perkara ini, kami boleh mengubah suai fungsi seperti berikut:
<code class="javascript">function throttle(fn, threshhold, scope) { threshhold || (threshhold = 250); var last, deferTimer; return function () { var context = scope || this; var now = +new Date; if (now < last + threshhold) { return; // prevent subsequent execution } last = now; fn.apply(context, arguments); }; }
Fungsi Pendikit Terperinci
Untuk lebih fleksibiliti dan pilihan tambahan, anda boleh merujuk kepada pelaksanaan berikut :
<code class="javascript">function throttle(func, wait, options) { var context, args, result; var timeout = null; var previous = 0; if (!options) options = {}; var later = function() { previous = options.leading === false ? 0 : Date.now(); timeout = null; result = func.apply(context, args); if (!timeout) context = args = null; }; return function() { var now = Date.now(); if (!previous && options.leading === false) previous = now; var remaining = wait - (now - previous); context = this; args = arguments; if (remaining <= 0 || remaining > wait) { if (timeout) { clearTimeout(timeout); timeout = null; } previous = now; result = func.apply(context, args); if (!timeout) context = args = null; } else if (!timeout && options.trailing !== false) { timeout = setTimeout(later, remaining); } return result; }; };</code>
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * **Bagaimanakah Saya Boleh Melaksanakan Pendikitan Mudah dalam JavaScript?** * **Apakah Cara Terbaik untuk Mendikit Fungsi JavaScript?** *. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!