Nel tentativo di osservare eventi JavaScript come scroll o mousemove, notiamo che avvengono un numero imprecisato di volte al secondo. A volte, se l'operazione eseguita ad ogni trigger dell'evento è complessa, l'intera interfaccia si può bloccare.
Diversamente dalla funzione debounce(), vista nello script precedente, la funzione throttle() serve a controllare la frequenza di esecuzione.
// Definizione funzione throttle
function throttle(func, limit) {
let lastCall = 0;
return function (...args) {
const now = Date.now();
if (now - lastCall >= limit) {
lastCall = now;
func.apply(this, args);
}
};
}
// al movimento del mouse, associo la funzione
window.addEventListener('mousemove', throttle((e) => {
console.log(`Mouse a ${e.clientX}, ${e.clientY}`);
}, 200));Anche se l'evento mousemove avviene centinaia di volte al secondo, il console.log() verrà mostrato solo una volta ogni 200ms, evitando così un sovraccarico di operazioni e migliorando le prestazioni dell'applicazione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Ridurre il reflow cambiando il CSS
Supportare la crittografia di ASP.NET Core con Azure Container App
Utilizzo del persistent state di Blazor nel prerendering
Realizzare un accordion con gli elementi HTML details e summary
Effettuare un clone parziale di un repository di GitHub
Gestire gli errori nelle Promise JavaScript con try()
Introduzione a GitHub Copilot CLI
Abilitare il rolling update su Azure Functions flex consumption
Mischiare codice server side e client side in una query LINQ con Entity Framework
Analizzare il contenuto di una issue con GitHub Models e AI
Integrare Agenti A2A in Azure API Management




