Técnica debounce com JavaScript
363d atrás
Você já se deparou com alguma chamada do seu código que é feita de maneira frequente e que pode representar um desperdício de recursos? Talvez a técnica debounce possa ser a solução.
Debounce é a técnica de atrasar a execução de uma função, por certa quantidade de tempo e cancelar solicitações antigas se há uma nova. Utilizar essa estratégia pode ser extremamente importante para a performance do seu código, como em eventos chamados com frequência, a exemplo de input ou scroll do usuário.
Exemplo
Para exemplo, vamos utilizar o debounce em um input, para isso adicione o seguinte HTML:
<input>
Agora adicione a função que cria o efeito debounce no seu #JavaScript:
function debounce(callback, ms) {
let timeout;
return function(...args) {
const c = () => {
clearTimeout(timeout);
callback(...args);
}
clearTimeout(timeout);
timeout = setTimeout(c, ms);
}
}
E agora vamos cadastrar a função que será executada com debounce:
const debounceFunc = debounce((e) => console.log(e.target.value), 1000);
E agora vamos adicionar ao listener de input:
document.querySelector('input').addEventListener('input', debounceFunc);
Com isso, você pode economizar em chamadas HTTP, cálculos complexos, ou qualquer outra atividade que é requisitada intensamente.
Comentários (0)