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 :

getElementsByTagName ('*') 2balises dans la boucle test ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Lareine
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut
    Citation Envoyé par Mr N.
    Sinon conernant les 486, je me suis fourré dedans !
    Je voulais parler des modèles 486, genre 486 SX25... Qui tournaient à... 25 Mhz.
    Au temps pour moi.
    Ouf! Tu fais bien de préciser !
    J'allais prendre de mauvaises habitudes dans mon code, en pensant bien faire
    pour la rapidité de navigations des mes visiteurs les moins bien équipés ...

    Citation Envoyé par javatwister
    vu que les questions de maintenance m'intéressent aussi, je prends la liberté de proposer mon grain de sel:

    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
    <script type="text/javascript"> 
     
    var n = document.getElementsByTagName("*"); 
     
    function actif(){
    this.style.borderStyle="inset";
    }
     
    function inactif(){
    this.style.borderStyle="outset";
    }
     
    for(i=0;i != n.length;i++){
    	if(n[i].className=="bouton"){
    		n[i].onmousedown=actif;
    		n[i].onmouseup=inactif
    		n[i].onmouseout=inactif
    	}
    }
     
    </script>
    Interessant :o !

    Mais la tu utilise deux fonctions ....

    Comment fais-tu pour déclarer actif et inactif dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    }
    window.onload = function(){?nom?de?fonction?()};
    si tu l'utilise dans un *.js :o ?

    Et ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var n = document.getElementsByTagName("*");
    Ça veut bien dire que ça capture toutes les balises de la page ?
    Ça ne risque t'il pas de pomper des ressources inutilement ???

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    oui, j'utilise 2 fonctions... et non 4, comme toi!

    j'évite de recopier des routines, c'est tout! donc, une seule boucle pour récupérer les balises à activer, quel que soit leur type; et une seule fonction pour les événements mouseup et mouseout;

    le résultat n'est que 2 fois moins long, c'est sûr


    pour le lancement, aucun problème si tu places le script en fin de page! (.js ou pas);
    si tu es une fana du window.onload, inclus l'ensemble du code dans une fonction! ça ne change rien;

  3. #3
    Membre confirmé Avatar de Lareine
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var n = document.getElementsByTagName('*'); 
     
    function bordure(bouton){ 
      for(i=0;i != n.length;i++){ 
      if(n[i].className=='bouton'){ 
      n[i].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      n[i].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      n[i].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
     } 
     
    } 
    window.onload = function(){bordure('bouton')};
    ou avec mon code de départ à peine plus long ... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function bordure(bouton) 
    { 
      boutons=document.getElementsByTagName('*') 
      for(b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
     } 
    } 
    window.onload = function(){bordure('bouton')};
    La question que je me pose, quel sont les dés/avantages du sélecteur universel ('*')
    par rapport à la fonction de Mr N. en terme de charge processeur ???

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    La question que je me pose, quel sont les dés/avantages du sélecteur universel ('*')
    par rapport à la fonction de Mr N. en terme de charge processeur ???
    fais des tests

  5. #5
    Membre confirmé Avatar de Lareine
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut
    Citation Envoyé par javatwister
    La question que je me pose, quel sont les dés/avantages du sélecteur universel ('*')
    par rapport à la fonction de Mr N. en terme de charge processeur ???
    fais des tests
    Petit canaillou ! Tu n'en sais rien non plus :o !?

    De mon coté je n'ais pas vue de différence notable, à part le faite que du
    coup je peut utiliser la fonction pour quasiment n'importe quel balise:
    <table> <td> <div> <a> <img> <p> etc ....

    M'amuse comme une tite folle avec ce nouveau joujou * !

    Bravo javatwister !
    Quelle idée de génie d'utiliser le sélecteur universel !

    Ça roule Impec sous IE, Opera et Firefox. Jespère juste qu'il n'y à aucun
    soucis de compatibilité avec d'autres navigateur !?

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    tu pourras pas avec IE 5.5; mais bon, on s'en fout hein!


    pour tester, amuse-toi (mais c'est plutôt prise de tête) à évaluer le temps de traitement en plaçant 2 repères new date(), l'un en tête de fonction et l'autre à la fin;
    une petite soustraction te donnera grosso modo la réponse pour ton système / ton navigateur;
    et prends soin de charger au maximum la page avec des centaines de balises inutiles, sinon c'est pas drôle !

  7. #7
    Membre confirmé Avatar de Lareine
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut
    Citation Envoyé par javatwister
    tu pourras pas avec IE 5.5; mais bon, on s'en fout hein!
    Oui et Non ! C'est possible qu'un visiteur surf avec la version
    5.5 d'Internet Explorer à l'heure actuel ?!

    Citation Envoyé par javatwister
    pour tester, amuse-toi (mais c'est plutôt prise de tête) à évaluer le temps de traitement en plaçant 2 repères new date(), l'un en tête de fonction et l'autre à la fin;
    une petite soustraction te donnera grosso modo la réponse pour ton système / ton navigateur;
    et prends soin de charger au maximum la page avec des centaines de balises inutiles, sinon c'est pas drôle !
    Ok! Vais essayer çà !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. test avant d'entrer dans une boucle For each cell in selection
    Par totoro02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2009, 09h27
  2. Problème dans ma boucle de test
    Par Sakeno dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2008, 00h50
  3. Réponses: 19
    Dernier message: 16/03/2008, 23h45
  4. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  5. Probleme de test dans un boucle
    Par PrinceMaster77 dans le forum ASP
    Réponses: 14
    Dernier message: 15/06/2004, 12h32

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