Frage

Welche Rangordnung werden die Ereignisse in JavaScript behandelt?

Hier sind die Ereignisse in alphabetischer Reihenfolge ...

  1. onabort - Laden eines Bildes unterbrochen
  2. onblur - Ein Element den Fokus verliert
  3. Onchange - Der Benutzer ändert die Inhalt eines Feldes
  4. Onclick - Mausklicks ein Objekt
  5. ondblclick - Maus doppelklickt ein Objekt
  6. onerror - Ein Fehler tritt auf, wenn ein Dokument oder ein Bild geladen
  7. onfocus - Ein Element den Fokus erhält
  8. onkeydown - eine Taste der Tastatur ist gedrückt
  9. onkeypress - eine Taste der Tastatur ist gepresst oder gedrückt
  10. onkeyup - eine Taste der Tastatur ist  freigegeben
  11. onload - Eine Seite oder ein Bild  fertig geladen
  12. onmousedown - eine Maustaste  gedrückt
  13. onmousemove - Die Maus bewegt wird,
  14. onmouseout - Die Maus bewegt wird ausgeschaltet  ein Element
  15. Onmouseover - Die Maus bewegt wird,  über ein Element
  16. onmouseup - eine Maustaste  freigegeben
  17. onreset - Die Reset-Taste ist  geklickt
  18. onresize - Ein Fenster oder Frame  Größe verändert
  19. onselect - Text ausgewählt
  20. onsubmit - Der Submit-Button ist  geklickt
  21. onunload - Der Benutzer verlässt die Seite

Was sind, um sie aus der Ereigniswarteschlange behandelt?

Die Priorität ist nicht first-in-first-out (FIFO) oder so glaube ich.

War es hilfreich?

Lösung

Das war nicht, so weit ich weiß, explizit in der Vergangenheit definiert. Verschiedene Browser sind kostenlose Veranstaltung Bestellung implementieren aber sie für richtig halten. Während die meisten nahe genug für alle praktischen Zwecke sind dort gewesen und weiterhin einige ungerade Rand Fällen, wo Browser etwas unterscheiden (und, natürlich, nicht die vielen anderen Fällen, in denen bestimmte Browser überhaupt bestimmte Ereignisse senden ).

Das heißt, die HTML 5 Entwurf einer Empfehlung macht einen Versuch machen, zu spezifizieren, wie die Ereignisse der Warteschlange werden und versandt - die Ereignisschleife :

  

Ereignisse zu koordinieren, Benutzer   Interaktion, Skripte, Rendering,   Vernetzung, und so weiter, Benutzeragenten   verwenden Ereignisschleifen müssen, wie in   In diesem Abschnitt wird.

     

Es muss mindestens eine Ereignisschleife sein   pro User-Agent, und höchstens ein Ereignis   Schleife pro Einheit von verwandten   ähnlich Ursprungs-Browsing Kontexten.

     

Eine Ereignisschleife hat eine oder mehr Aufgaben   Warteschlangen. Eine Task-Warteschlange ist eine geordnete   Liste der Aufgaben [...]   Wenn ein Benutzeragent ist eine Aufgabe in der Warteschlange,   es muss die gegebene Aufgabe zu einem der hinzufügen   die Aufgabenwarteschlangen der jeweiligen Veranstaltung   Schleife. Alle Aufgaben von einem   besondere Aufgabe Quelle muss immer   auf die gleiche Aufgabenwarteschlange hinzugefügt, aber   Aufgaben aus verschiedenen Aufgabenquellen   werden in verschiedenen Aufgabenwarteschlangen platziert.   [...]

     

[...] ein User-Agent eine Task-Warteschlange haben könnte   für Maus- und Tastaturereignisse (der Benutzer   Interaktion Aufgabe Quelle), und ein anderer   für alles andere. Der User-Agent   geben könnte dann Tastatur und Maus   Veranstaltungen Vorrang vor anderen Aufgaben   drei Viertel der Zeit, zu halten   die Schnittstelle reagiert, aber nicht   hungern andere Aufgabe Warteschlangen und nie   Prozessierungsereignisse aus einer und derselben Aufgabe   aus der Ordnung Quelle. [...]

Beachten Sie, dass letzte Bit: es liegt an den Browser Implementierung zu bestimmen, welche Ereignisse zusammen gruppiert, um werden und verarbeitet werden, sowie die Priorität auf eine bestimmte Art von Veranstaltung gegeben. Daher gibt es wenig Grund, alle Browser zu erwarten versenden alle Ereignisse in einer festen Reihenfolge, jetzt oder in der Zukunft.

Andere Tipps

Für alle, die Sequenz relativ Ereignisse kennen aufgerufen, siehe unten. Bisher habe ich nur in Chrome getestet.

  1. Mouseover
  2. mousemove-
  3. mouseout

  1. mousedown-
  2. Wechsel (fokussierte Eingang)
  3. blur (auf fokussierte Element)
  4. Fokus
  5. mouseup
  6. Klicken Sie auf
  7. dblclick

  1. keydown
  2. keypress
  3. keyup

Wenn Sie sich bei Maus / berühren Ereignisse suchen, Patrick H. Lauke hat zum Thema . Auf jeden Fall eine interessante Lektüre -. Und beschäftigt sich mit allen Macken von verschiedenen Browsern, verschiedene Geräte und verschiedene Standards

Er bündelt auch eine umfassende Reihe von Tests .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top