Passe o ponteiro sobre o painel e veja eventos brutos, chamadas com debounce e chamadas com throttle em uma única linha do tempo. Funções de debounce e throttle para copiar, além de hooks React.
O debounce espera as chamadas pararem por um tempo definido e então roda uma vez, o que serve para campos de busca e salvamento automático. O throttle roda no máximo uma vez por intervalo enquanto as chamadas continuam chegando, o que serve para rolagem, redimensionamento e rastreamento do ponteiro. Os dois recebem uma função e um atraso em milissegundos e retornam uma função envolvida que você chama no lugar.
Qual usar
Os dois termos se confundem porque ambos reduzem a frequência com que uma função roda. O painel abaixo mostra a diferença em uma linha do tempo compartilhada: cada evento bruto como um traço fino, cada chamada com debounce e cada chamada com throttle como um ponto. Mude o atraso e o padrão muda junto.
O debounce reinicia o timer a cada chamada e só roda quando as chamadas pausam. O throttle ignora as chamadas dentro da janela atual, mas roda de novo assim que a janela passa, então dispara com regularidade durante uma rajada longa.
O leading edge é a primeira chamada de uma rajada; o trailing edge é o momento em que o intervalo da rajada termina. Um debounce trailing roda depois da pausa, um leading roda imediatamente e depois ignora as chamadas até a pausa. Throttles podem disparar em qualquer uma das bordas ou nas duas.
Não. As funções desta página têm poucas linhas cada. A versão de uma biblioteca adiciona opções como maxWait, cancel e flush, que são úteis, mas fáceis de adicionar por conta própria se você precisar de apenas uma delas.
Não existe um único número certo. Comece com cerca de 300 milissegundos para digitação e 100 para rolagem ou ponteiro, e ajuste pela sensação. Mais curto parece mais responsivo, mas economiza menos trabalho.
Trailing edge. cancel() descarta qualquer chamada pendente.
Roda no leading edge e mais uma vez no fim da janela se chegaram chamadas nesse meio-tempo, então o último valor nunca se perde.
Mantém um único timer durante a vida do componente, sempre chama o callback mais recente e limpa o timer ao desmontar.
Retorna uma cópia de um valor que muda rápido e que se atualiza no máximo uma vez por intervalo.
Eventos brutos
Com debounce ({n} ms)
Com throttle ({n} ms)
Passe o ponteiro sobre o painel. Traços finos são eventos brutos; pontos são chamadas que realmente rodaram depois do debounce ou do throttle.
Atraso: {n} ms
Painel de eventos: mova o ponteiro aqui ou segure uma tecla
Mova aqui (ou dê foco e segure uma tecla)
A linha do tempo mostra os últimos seis segundos; os números contam as chamadas nessa janela.
Limpar
Comece grátis · Sem cartão de crédito