Rumah >hujung hadapan web >tutorial js >**Mengapakah Fungsi Pendikit JavaScript Mudah Menghapuskan Pelaksanaan Akhir Selepas Tempoh Pendikit?**
Pendikitan Mudah dalam JavaScript
JavaScript menyediakan pelbagai alatan untuk fungsi pendikit, termasuk lodash dan garis bawah. Walau bagaimanapun, untuk keadaan di mana perpustakaan ini mungkin berlebihan, pelaksanaan pendikit tersuai adalah wajar.
Fungsi dan Cabaran Pendikit Sedia Ada
Fungsi pendikit yang disediakan berfungsi, tetapi ia mengemukakan isu. Selepas tempoh pendikit tamat, ia melaksanakan fungsi untuk kali terakhir. Ini boleh membawa kepada gelagat yang tidak diingini dalam senario di mana fungsi tidak sepatutnya menyala beberapa kali.
Fungsi Pendikit Yang Dipertingkat
Untuk menangani isu ini, pertimbangkan fungsi pendikit dipertingkat berikut yang menghapuskan pelaksanaan akhir selepas tempoh pendikit:
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; }; };
Fungsi yang dikemas kini ini menyediakan mekanisme pendikit boleh dikonfigurasikan dengan parameter pilihan untuk mencetuskan tepi hadapan dan mengekor.
Fungsi Pendikit Dipermudah
Jika kebolehubahsuaian tidak diperlukan, fungsi pendikit yang lebih mudah adalah seperti berikut:
function throttle (callback, limit) { var waiting = false; return function () { if (!waiting) { callback.apply(this, arguments); waiting = true; setTimeout(function () { waiting = false; }, limit); } } }
Fungsi tidak boleh dikonfigurasikan ini mendikit fungsi sasaran kepada selang masa tertentu tanpa memerlukan pilihan yang kompleks .
Atas ialah kandungan terperinci **Mengapakah Fungsi Pendikit JavaScript Mudah Menghapuskan Pelaksanaan Akhir Selepas Tempoh Pendikit?**. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!