Falls Sie nicht wissen, was ich rede, lesen Sie bitte John Resig - How JavaScript Timers Work und Is JavaScript guaranteed to be single-threaded?Was löst die Ausführung von JavaScript-Code aus?
Es gibt mehrere Auslöser sind die Aufgaben in der JS-Motoren Ausführung FiFo einreihen. Dies ist kein Standard, also versuche ich eine erschöpfende Liste dieser Auslöser zu finden. (Ich denke, es läuft alles auf interne Event-Handler, wie Skript Lastereignisse oder Timer-Ereignisse, aber ich würde lieber die Motoreinbauten ignorieren und sehen die Dinge aus der Sicht des Benutzers aus gesehen.)
So bis jetzt habe ich
<script>
Elemente in dem Ausgangsdokument (einschließlich denen, hinzugefügt vondocument.write
) identifiziert *<script>
von JS eingefügten Elementen zur Laufzeit *- Ereignis handl ers
- dazu gehören eine Vielzahl von Fällen, wie zB Interaktion mit dem Benutzer, Fehlerereignisse, Web Worker-Nachrichten oder Ajax Rückrufe ... window.setTimeout
window.setInterval
*) nur in Browser/DOM-Umgebungen
Noch mehr? Irgendwelche Unterschiede zwischen JS-Maschinen?
Ähnlich wie bei window.setTimeout und window.setInterval gibt es jetzt window.requestAnimationFrame, das versucht, die Funktion beim nächsten Auffrischen des Bildschirms auszulösen (normalerweise 1/60stel Sekunde). – jcmiller11
Sie können 'setTimeout() 'und' setInterval() 'zusammen mit Event-Handlern, weil sie das sind: zeitgesteuerte Ereignisse. Grundsätzlich gibt es nur zwei Dinge: Event-Handler und das Laden von Skripten. – slebetman