JavaScript: il problema delle azioni ripetute sugli eventi continui

JavaScript: il problema delle azioni ripetute sugli eventi continui

Le azioni ripetute in JavaScript possono creare problemi quando vengono associate ad eventi continui.

Possiamo definire la seguente funzione:


function debounce( func, wait, immediate ) {
	var timeout;
	return function() {
		var context = this, args = arguments;
		var later = function() {
			timeout = null;
			if ( !immediate ) { 
				func.apply( context, args );
			}
		};
		var callNow = immediate && !timeout;
		clearTimeout( timeout );
		timeout = setTimeout( later, wait );
		if ( callNow ) { 
			func.apply( context, args );
		}
	};
};

Esempio d'uso con l'evento scroll:


$( window ).on( "scroll", function() {
	
	debounce(function() {
		//...	
	}, 250);
	
});

Torna su