IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Bouillon d'événements JS


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 75
    Points
    75
    Par défaut Bouillon d'événements JS
    Bonjour à tous,

    Petite question, j'ai entendu aujourd'hui l'expression "bouillon d'événements javascript".

    Quelqu'un pourrait m'expliquer le sens de cette expression ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 099
    Points : 44 868
    Points
    44 868
    Par défaut
    Bonjour,
    Quelqu'un pourrait m'expliquer le sens de cette expression ?
    tout à fait, mais ce n'est pas moi

    Présentation des évènements du DOM
    L'objectif de cet article, relativement exhaustif, est de permettre de comprendre comment manipuler les évènements DOM en Javascript.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ça ressemble à du jargon pseudo quelque chose d'un type qui veut vendre ce quelque chose.

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par chanyslas Voir le message
    Ça ressemble à du jargon pseudo quelque chose d'un type qui veut vendre ce quelque chose.
    Oui c'est du jargon, non ce n'est pas commercial. Le bouillonnement d'évènements est un terme très connu, et si tu penses ce que tu as dit c'est qu'apparemment tu ne le connais pas. Si tu avais su, tu aurais certainement pu apporter une réponse plus constructive.

  5. #5
    Invité
    Invité(e)
    Par défaut
    le bouillonnement c'est quand le processeur chauffe trop

    plus serieusement c'est vrai que le mot est flou j'ai l'impression que c'est une traduction simpliste du mot anglais bubling personnelement je dirait plutot debordement sa arrive quand des elements son imbriqué et qu'il possedents le meme evenement.

    comme je suis plus exemple concret que grosse explication voici un exemple qui met en avant cette phase.

    il s'agit de div imbriqué et on s'appercois que quand on clic dans le div le plus haut sa ce repercute sur les autres (bouillonnement) et que pour eviter le bouillonnement on utilise stopPropagation (div vert)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <!DOCTYPE html>
    <script type="text/javascript">
    function fct4(evt){
    	evt.stopPropagation();
    	alert(evt.currentTarget.id);
    }
    function fct3(evt){
    	alert(evt.currentTarget.id);
    }
    function fct2(evt){
    	alert(evt.currentTarget.id);
    }
    function fct1(evt){
    	alert(evt.currentTarget.id);
    }
    </script>
    </head>
    <body>
    <div  onclick='fct1(event)'id='div_gris' style='display:inline-block;height:300px;width:300px;background-color:gray'>
    <div  onclick='fct2(event)' id='div_bleu' style='margin:auto;margin-top:30px;height:200px;width:200px;background-color:blue'>
    <div  onclick='fct3(event)'id='div_rouge' style='margin:auto;height:80px;width:80px;background-color:red'></div>
    <br>
    <div  onclick='fct4(event)'id='div_vert' style='margin:auto;margin-top:5px;height:80px;width:80px;background-color:green'></div>
    </div>
    </div>
    </html>
    Dernière modification par Bovino ; 18/01/2014 à 08h55.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 099
    Points : 44 868
    Points
    44 868
    Par défaut
    Citation Envoyé par chanyslas
    Ça ressemble à du jargon pseudo quelque chose d'un type qui veut vendre ce quelque chose.
    ce passage Les notions de flux et de propagation d'un événement reste quand même clair me semble t-il!

  7. #7
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par mekal Voir le message
    l[...]c'est vrai que le mot est flou j'ai l'impression que c'est une traduction simpliste du mot anglais bubling personnelement je dirait plutot debordement sa arrive quand des elements son imbriqué et qu'il possedents le meme evenement.
    Pour moi, la bonne traduction de "event bubbling" c'est simplement "la propagation d'événements".

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Le bouillonnement n'est qu'une des phases de la propagation d'un évènement, la phase où l'évènement remonte le DOM jusqu'au noeud racine. L'article de hornetbzz explique ça très bien.

    Le mot peut sembler comique, mais ça donne une bonne image du sens de propagation. Moi pour m'en rappeler, je m'imagine le DOM d'une page en 3 dimensions, où chaque élément fait un creux dans son élément parent. Puis un clic serait comme si on lâchait une balle du haut du DOM : elle touche l'élément le plus au fond avant de rebondir. On peut intercepter la balle au rebond pour ne pas qu'elle remonte trop haut.

    Un peu comme la 3D view de firefox, mais avec des trous au lieu de bosses :

  9. #9
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Pour ne pas confondre la phase de bouillonnement avec la phase de capture (qui sont les deux phases de propagation, n'est-ce pas Daniel ), moi je me rappelle que le 3e paramètre de addEventListener qu'on met toujours à false (souvent sans trop savoir pourquoi – d'ailleurs il est devenu optionnel et c'est tant mieux) s'appelle useCapture dans la doc du W3C.

    Comme on met toujours useCapture = false, ça signifie qu'on n'utilise jamais la phase de capture. Autrement dit, c'est la phase de bouillonnement qu'on utilise tous les jours.

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Autrement dit, c'est la phase de bouillonnement qu'on utilise tous les jours.
    On peut remercier jQuery pour ça aussi

  11. #11
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Celui qui en parle le mieux c'est : http://www.w3.org/TR/DOM-Level-3-Eve...t-architecture



    Pour nous mettre en accord avec la norme DOM, nous devrions donc dire que la propagation d'événements se décompose en trois phases :
    1. La phase de capture
    2. La phase de ciblage
    3. La phase de bouillonnement


    1. The capture phase: The event object must propagate through the target's ancestors from the defaultView to the target's parent. This phase is also known as the capturing phase. Event listeners registered for this phase must handle the event before it reaches its target.
    2. The target phase: The event object must arrive at the event object's event target. This phase is also known as the at-target phase. Event listeners registered for this phase must handle the event once it has reached its target. If the event type indicates that the event must not bubble, the event object must halt after completion of this phase.
    3. The bubble phase: The event object propagates through the target's ancestors in reverse order, starting with the target's parent and ending with the defaultView. This phase is also known as the bubbling phase. Event listeners registered for this phase must handle the event after it has reached its target.

  12. #12
    Membre habitué
    Homme Profil pro
    En rupture avec la societé
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : En rupture avec la societé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 194
    Points
    194
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Comme on met toujours useCapture = false, ça signifie qu'on n'utilise jamais la phase de capture. Autrement dit, c'est la phase de bouillonnement qu'on utilise tous les jours.
    Ce paramètre permet de définir le sens de propagation des événements et ca change beaucoup de choses selon l'événement utilisé.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 75
    Points
    75
    Par défaut
    Hello,

    Merci à tous de vos réponses, j'avais déjà ma petite idée mais c'est bien plus clair pour moi désormais !

    danielhagnoul, très bien ce schéma ! Un bout de code ou un dessin y'a que ca de vrai !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pas d'événement OnClose quand on arrête W2K
    Par Altau dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/01/2009, 18h36
  2. Réponses: 5
    Dernier message: 09/01/2003, 11h55
  3. exploiter un évènement d'un sous composant dans un
    Par bjl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 16h44
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Redéfinir l'événement OnExit de mon composant TEditFloat
    Par Seb des Monts dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/06/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo