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?** *

Mary-Kate Olsen
Lepaskan: 2024-10-25 08:54:28
asal
854 orang telah melayarinya

Here are a few question-based titles that fit the content of your article:

* **How Can I Implement Simple Throttling in JavaScript?** 
* **What's the Best Way to Throttle a JavaScript Function?**
* **Need to Prevent Overwhelm? Here's How to Throttle Yo

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 &amp;&amp; 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);
    }
  };
}
Salin selepas log masuk

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);
  };
}
Salin selepas log masuk

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 &amp;&amp; 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 &amp;&amp; options.trailing !== false) {
      timeout = setTimeout(later, remaining);
    }
    return result;
  };
};</code>
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!