JS Debounce - эффективный способ ускорения работы вашего веб-приложения
JS debounce - это техника, которая позволяет отложить выполнение функции до тех пор, пока она не будет вызвана определенное количество раз или не произойдет определенное событие. Это особенно полезно, когда нужно уменьшить число запросов на сервер или оптимизировать производительность при работе с пользовательским интерфейсом.
Примером кода для JS debounce может быть следующий:
js
function debounce(func, delay) {
let timer;
return function() {
let context = this,
args = arguments;
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(context, args);
}, delay);
};
}
function search() {
//...some search logic here
}
let searchDebounced = debounce(search, 300);
document.getElementById("searchInput").addEventListener("input", function() {
searchDebounced();
});
В данном примере функция `debounce` принимает два аргумента: функцию `func` и задержку `delay`, которая указывает, сколько миллисекунд нужно отложить выполнение функции. Внутри функции `debounce` создается таймер, который отменяется при каждом вызове функции, и затем устанавливается новый таймер для выполнения через заданное время `delay`.
Затем создается функция `search`, которая представляет собой поиск по какому-то критерию, и функция `searchDebounced`, которая будет вызываться при изменении значения поля ввода с задержкой в 300 миллисекунд. Таким образом, при каждом вводе в поле поиска будет вызываться функция `searchDebounced` через 300 миллисекунд после последнего ввода, что позволяет существенно сократить количество запросов на сервер.
JS debounce - это очень полезная техника, которая может значительно улучшить производительность вашего кода и сделать пользовательский интерфейс более отзывчивым. Используйте ее в своих проектах для повышения эффективности вашего кода!