Как использовать функцию противодействия в JavaScript

Функция debounce () заставляет функцию ждать определенное время перед повторным запуском. Функция построена так, чтобы ограничить количество раз, когда функция запускается. называется.

Функция Send Request () заблокирована. Запросы отправляются только через фиксированные промежутки времени, независимо от того, сколько раз пользователь нажимает кнопку.

Такие события, как прокрутка, движение мыши и нажатие клавиш, приводят к большим накладным расходам, если они фиксируются каждый раз при запуске. Функция направлена ​​на сокращение накладных расходов, предотвращая вызов функции несколько раз подряд.

Реализация

Следующая реализация debounce возвращает функцию, которая не будет запускаться, пока она продолжает вызываться. Функция будет вызываться после того, как она перестанет вызываться в течение N миллисекунд. Если в качестве аргумента функции передается немедленный , функция запускается немедленно, а затем ожидает в течение интервала перед повторным вызовом.

 функция debounce (func, ждать, немедленно) {var timeout;  возвратите функцию executeFunction () {var context = this;  var args = аргументы;  вар позже = функция () {тайм-аут = ноль;  если (! немедленно) func.apply (context, args);  };  var callNow = немедленный &&! тайм-аут;  clearTimeout (тайм-аут);  timeout = setTimeout (позже, подождите);  если (callNow) func.apply (контекст, аргументы);  };}; 

При передаче функции и времени интервал для устранения неполадок, возвращается функция, которую можно передать слушателям событий, которые выполняют эту функцию.

 var ReturnFunction = debounce (function () {//Код функции}, 250); window.addEventListener ('resize', returnFunction  ); 

Код

В следующем примере отображается окно предупреждения через 2 секунды после пользователя перестал нажимать кнопку п. Он передает обработанную функцию обработчику события кнопки onClick ..

  • Выход
  • HTML
Оцените статью
nanomode.ru
Добавить комментарий