66 votes

Ce qui est le cas de priorité en JavaScript?

Quel ordre de priorité événements géré en JavaScript?

Voici les événements dans l'ordre alphabétique...

  1. onabort - Chargement d'une image est interrompu
  2. onblur - Un élément perd le focus
  3. onchange - l'utilisateur change La le contenu d'un champ
  4. onclick de la Souris, clique sur un objet
  5. ondblclick de la Souris, double-clique sur une objet
  6. onerror Une erreur se produit lors de l' chargement d'un document ou d'une image
  7. onfocus - Un élément reçoit le focus
  8. onkeydown - Une touche du clavier est pressé
  9. onkeypress - Une touche du clavier est pressé ou détenus en bas
  10. onkeyup - Une touche du clavier est publié
  11. onload - Une page ou une image est fini de charger
  12. onmousedown - Un bouton de la souris est pressé
  13. onmousemove - La souris est déplacée
  14. onmouseout - La souris est déplacée un élément
  15. onmouseover - La souris est déplacée au niveau d'un élément
  16. onmouseup - Un bouton de la souris est publié
  17. onreset - Le bouton de réinitialisation est cliqué
  18. onresize - Une fenêtre ou le cadre est redimensionnée
  19. onselect de Texte est sélectionné
  20. onsubmit - Le bouton "soumettre" est cliqué
  21. onunload - l'utilisateur quitte La page

Quel ordre sont-ils traités de la file d'attente d'événements?

La priorité n'est pas first-in-first-out (FIFO) ou alors je le crois.

39voto

Shog9 Points 82052

Ce n'était pas, pour autant que je sache, explicitement définie dans le passé. Les différents navigateurs sont libres de mettre en œuvre des événements de la commande cependant ils l'entendent. Alors que la plupart sont assez proches, à toutes fins pratiques, ont été et continuent d'être les quelques rares cas où les navigateurs diffèrent quelque peu (et, bien sûr, les beaucoup plus de cas où certains navigateurs ne parviennent pas à envoyer certains événements à tous).

Cela dit, le HTML 5 projet de recommandation fait une tentative de spécifier la façon dont les événements seront mis en file d'attente et envoyés - la boucle d'événements:

Coordonner les événements, l'utilisateur de l'interaction, de scripts, de rendu, mise en réseau, et ainsi de suite, les agents d'utilisateur devez utiliser une boucle d'événement tel que décrit dans cette section.

Il doit y avoir au moins une boucle d'événement par l'agent utilisateur, et au plus un événement boucle par unité de connexes similaire à l'origine de la navigation contextes.

Une boucle a une ou plusieurs tâches les files d'attente. Une tâche de la file d'attente est d'un ordre liste de tâches [...] Lorsqu'un agent utilisateur est une tâche de la file d'attente, il faut ajouter que la tâche donnée à l'un des les files d'attente de tâches de la manifestation de la boucle. Toutes les tâches d'un particulier de la tâche source doit toujours être ajouté à la même tâche en file d'attente, mais les tâches à partir de différentes sources de tâches peut être placé dans différentes files d'attente de tâches. [...]

[...]un agent utilisateur pourrait avoir une tâche de la file d'attente pour la souris et des principaux événements (l'utilisateur tâche d'interaction de la source), et un autre pour tout le reste. L'agent de l'utilisateur pourrait alors donner le clavier et la souris les événements de préférence sur d'autres tâches les trois quarts du temps, en gardant l'interface réactive mais pas prive les autres files d'attente de tâches, et de ne jamais le traitement des événements à partir d'une tâche source de l'ordre. [...]

Notez que le dernier bit: c'est le navigateur de mise en œuvre pour déterminer les événements qui seront regroupées et traitées dans l'ordre, ainsi que la priorité donnée à un type particulier d'événement. Par conséquent, il ya peu de raison de s'attendre à tous les navigateurs à l'expédition de tous les événements dans un ordre fixe, maintenant ou dans l'avenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X