This is an old revision of the document!
Manche Events, wie z.B. resize oder scroll feuern zu häufig für die meisten normalen Anwendungen – vor allem wenn gleichzeitig eine HTML Manipulation am DOM passieren soll. Solche Events kosten dann viel Performance. Es ist meist nötig diese mit einem Timeout zu drosseln, damit das Javascript Event verzögert mit einem Delay ausgeführt wird – und nicht mehr so häufig.
let throttle_timer = null; /* Globale Variable für den Timer */ const throttle_delay = 200; /* Throttle Delay in ms */ window.addEventListener( 'scroll', function( event ) { /* Timer zruück setzen */ if( throttle_timer ) { window.clearTimeout( throttle_timer ); } /* Starte Warten */ throttle_timer = window.setTimeout(function() { /* Hier der eigentliche Event Code */ console.log( "Firing!" ); }, throttle_delay ); })
Ich bin über die Debounce Methode gestolpert: debounc( function, timeout ); die scheinbar das gleiche macht:
Leider habe ich noch nichts offizielles auf MDN gefunden wie kompatibel diese Funktion ist, z.B. mit IE11
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International