Qu'est-ce que le troisième paramètre (false) indique en
document.addEventListener("deviceready",OnDeviceReady,false);
Est-ce que quelqu'un peut montrer un exemple de script pour montrer la différence.
Qu'est-ce que le troisième paramètre (false) indique en
document.addEventListener("deviceready",OnDeviceReady,false);
Est-ce que quelqu'un peut montrer un exemple de script pour montrer la différence.
Ceci pour des raisons historiques. Lorsque le système d'événements du navigateur a été conçu pour la première fois, il existait deux façons contradictoires de modéliser son fonctionnement. On les appelait la capture d'événements et le bouillonnement d'événements.
Prenez par exemple, ce HTML :
<html>
<body>
<a href="#">Content</a>
</body>
</html>
Si un événement (par exemple un clic) se produit sur l'icône a
les éléments ancêtres doivent-ils le savoir ? Il était largement admis qu'ils le devaient. Mais la question était dans quel ordre ils doivent être informés. Les développeurs de Microsoft et de Netscape (ceci devrait vous donner une idée de l'ampleur de l'activité des développeurs). comment historiques, on parle !) avaient des avis divergents.
L'un des modèles était la capture d'événements (préconisée par les développeurs de Netscape). Cela notifiait le html
d'abord, et s'est frayé un chemin vers le bas de l'arbre :
html
body
a
L'autre modèle était l'event bubbling (préconisé par les développeurs de Microsoft). Il notifie d'abord l'élément cible, puis remonte le long de l'arbre :
a
body
html
Le compromis final était qu'il devait faire les deux .
html
(phase de capture)body
(phase de capture)a
(phase de capture)a
(phase de bouillonnement)body
(phase d'ébullition)html
(phase de bouillonnement)Ainsi, l'événement descend le long de l'arbre, puis remonte.
C'est une façon un peu longue d'arriver à addEventListener
. addEventListener
écoute les événements de la phase de capture et de la phase de bouillonnement. Le troisième paramètre (appelé useCapture
dans la spécification) permet au programmeur de spécifier la phase qu'il souhaite utiliser.
Dans les navigateurs modernes, la valeur par défaut est la suivante false
. Vous ne rencontrerez probablement jamais une circonstance où vous voudrez utiliser la phase de capture, d'autant plus qu'Internet Explorer ne la prend toujours pas en charge. Mais les anciens navigateurs ont besoin de la false
pour être explicite, donc il est généralement fourni pour la compatibilité ascendante.
C'est utiliserCapture :
Si
true
,useCapture
indique que l'utilisateur souhaite lancer la capture. Après avoir initié capture, tous les événements du type spécifié spécifiés seront envoyés à l'unité enregistrélistener
avant d'être avant d'être envoyéEventTarget
s en dessous dans l'arbre DOM. Les événements qui sont remontent dans l'arbre ne déclencheront pas ne déclencheront pas un écouteur désigné pour utiliser la capture. Voir Événements du niveau 3 de DOM pour une explication détaillée.
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.