warteten auf das Ereignis von 'Ende' von 'Gröze' für optimale Aktionspunkte
In ereignisgesteuerter Programmierung handeln es üblich, Größenänderungen mit dem Ereignis von 'Gröze', das typischerweise zu einem Fenster zugewiesen ist, ein Fenster zugewiesen ist. Bei der Änderung der Operationen wird jedoch während des Prozesses mehrmals ausgelöst, was zu einer redundanten Ausführung Ihres Ereignishandlers führt. 'setTimeout ()' und 'clearTimeout ()'.
Lösung:
Erstellen Sie eine Funktion, 'resizedw ()', die als Ereignishandler für die Größe des Abmaßes Aktion dient. // Ihre Aktion, die bei der Größenänderung ausgeführt werden soll }
deklariere eine Variable, 'doit' und initialisieren Sie sie als 'null'. Diese Variable enthält die von 'setTimeout ()'. var dit = null;
den Ereignishörer an das 'onResize' Ereignis des 'Window' -Objekts angeschlossene Ereignishörer. Die Variable 'doit'.
function resizedw() { // Your action to be performed when resizing finishes }
weisen dem Ergebnis von 'setTimeout ()' der 'doit' Variablen das Ergebnis von 'setTimeout () zu. Dadurch wird die Ausführung von 'geprägter Größe nach einer Verzögerung von 100 Millisekunden geplant.
var doit = null;
Wenn die Änderungsgrößenoperation endet, wird der Ereignishandler von 'OnResize' aufgerufen, ohne die Größe von "Größe" sofort auszulösen. Nach der angegebenen Verzögerung (100 Millisekunden) wird 'geprägt ()' 'ausgeführt, wobei der Abschluss des Größenverfahrens markiert wird. // Ihre Aktion, die bei der Größenänderung ausgeführt werden soll console.log ('Größenänderung fertig!'); } var doit = null; window.onResize = function () { Clearimeout (DOIT); doit = setTimeout (angegriffen, 100); };
window.onresize = function() {
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3