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 :

comprendre du code


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut comprendre du code
    Bonjour,
    j'upgrade une application web et il y a quelques bouts de js que j'aimerais comprendre (je n'ai jamais fait de js). Mon appli a des cadres que l'on ouvre et ferme sans recharger la page. Pour cela, chaque cadre a un petit symbole (+ ou -) en haut à gauche et le clic dessus l'ouvre ou le ferme. Je veux pouvoir utiliser cette présentation car elle est bien pratique mais j'ai un problème avec les var : j'ai un fichier common.js où il ya des déclarations de var qui jouent un rôle certains dans l'agrandissement/réduction des cadres mais je ne sais pas du tout pourquoi il est choisi tel ou tel nombre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var g_div_history		= 0x0001;
    var g_div_bugnotes		= 0x0002;
    var g_div_bugnote_add		= 0x0004;
    var g_div_upload_form		= 0x0010;
    var g_div_monitoring		= 0x0020;
    var g_div_sponsorship		= 0x0040;
    var g_div_relationships		= 0x0080;
    var g_div_filter        	= 0x0100;
    Le choix me parait arbitraire mais apparemment non car j'ai essayé de mettre des choses au hasard et ça ne marche pas.

    ces variables sont appellées quand on clique sur le + ou - :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="" onclick="ToggleDiv( 'bugnote_add', g_div_bugnote_add ); return false;"	><img border="0" src="images/minus.png" alt="-" /></a>
    Si quelqu'un sait ce que c'est...

  2. #2
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Les valeurs ne sont pas choisi au hasard.
    C'est des puissances de 2 uniquement.

    Cela permet d'utiliser des masques binaires (pour tester facilement tel ou tel bit d'une valeur entière).

    Maintenant comment c'est utilisé dans l'appli ??? :s Ben le fragment de code fourni ne permet pas d'en savoir plus
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    Voila le code typique de l'utilisation :

    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
     
    <div id="bugnote_add_closed" style="display: none;">
    <table class="width100" cellspacing="1">
    <tr>
    <td class="form-title" colspan="2">
    	<a href="" onclick="ToggleDiv( 'bugnote_add', g_div_bugnote_add ); return false;"><img border="0" src="images/plus.png" alt="+" /></a>
    		<?php echo lang_get( 'add_bugnote_title' ) ?>
    </td>
    </tr>
    </table>
    </div>
    <?php } ?>
     
    <div id="bugnote_add_open">
    <form method="post" action="bugnote_add.php">
    <input type="hidden" name="bug_id" value="<?php echo $f_bug_id ?>" />
    <table class="width100" cellspacing="1">
    <tr>
    	<td class="form-title" colspan="2">
    <?php if ( ON == config_get( 'use_javascript' ) ) { ?>
    		<a href="" onclick="ToggleDiv( 'bugnote_add', g_div_bugnote_add ); return false;"><img border="0" src="images/minus.png" alt="-" /></a>
    		<?php echo lang_get( 'add_bugnote_title' ) ?>
    <?php } ?>
    	</td>
    </tr>
    ensuite, on écrit ce que l'on veut dans ce cadre

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    En fait, je me suis aperçu qu'il n'y a pas que des puissances de deux car il y a 0x0010 et d'autres encore. Ce n'est pas que des puissances de deux mais on passe de l'une à l'autre en multipliant par 2, sauf pour certains cas (peut-être le début de séries)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var g_div_history		   = 0x0001;
    var g_div_bugnotes	         = 0x0002;
    var g_div_bugnote_add	       = 0x0004;
    var g_div_upload_form	        = 0x0010;
    var g_div_monitoring	         = 0x0020;
    var g_div_sponsorship	        = 0x0040;
    var g_div_relationships	         = 0x0080;
    var g_div_filter                    = 0x0100;
    var g_div_bugtasks              = 0x0200;
    var g_div_bugtask_add	      = 0x0400;
    var g_div_bugtasks_planning = 0x0800;
    var g_div_bugaction	       = 0x1000;
    var g_div_bugaction_add	     = 0x2000;
    Je pense que je pourrais continuer ainsi mais j'ai pas mal de var à ajouter alors quans je serai rendu à 0x8000 (ce qui ne me laisse que deux possibilités), je passe à quelle valeur ?

    Encore un mystère ...

  5. #5
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    En fait, je me suis aperçu qu'il n'y a pas que des puissances de deux car il y a 0x0010 et d'autres encore. Ce n'est pas que des puissances de deux mais on passe de l'une à l'autre en multipliant par 2, sauf pour certains cas (peut-être le début de séries)

    0x0010 c'est bien une puissance de 2
    0x0010 (en hexa) = 16 (base 10) = 2^4

    Et tout les valeurs indiquées, sont en héxa (0x....) et sont bien des puissances de 2.

    j'ai pas encore détaillé le code fourni, je look des que je peux
    Mais a priori, je pense que c'est très certainement des valeurs de masque, et que ce masque est peut être utilisé pour indiquer les éléments affichés ou kk chose du genre.
    je vais look plus en détail

    sinon lapuissance de 2 suivante à 0x8000 est 0x10000 ensuite 0x20000 puis 0x40000 puis 0x80000.
    Mais attention :
    0x8000 est un mot (2 octets) les valeur suivantes sont des mots long (4 octets).
    Je ne pense pas que ça pause de problème en JS pure, mais si tu a un traitement coté serveur, voir éventuellement un lien avec une base, il faut vérifier que ça passe.
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    merci, j'ai pas l'habitude de manipuler des nombres en hexa et je n'aurais jamais su que c'en était. Je pense que la longueur ne genera pas par contre, ces nombres permettraient d'ouvrir ou fermer tel ou tel cadre selon son état précédent ou bien par un quelconque moyen encore obscur et j'aimerais savoir comment ça fonctionne. Parce que certains cadres sont fermés par défaut alors que d'autres sont ouverts...par exemple, le cadre history est toujours fermé alors que le cadre planning est toujours ouvert.



    Finalement, j'ai essayé avec les valeurs 0x10000 puis 0x20000 etc et ça fonctionne bien, je ne sais pas comment ça fonctionne mais ce n'est pas grave.

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

Discussions similaires

  1. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00
  2. Réponses: 6
    Dernier message: 18/06/2006, 00h22
  3. Aide pour comprendre un code
    Par Spacy_green dans le forum Assembleur
    Réponses: 2
    Dernier message: 13/02/2006, 13h22
  4. Aide pour comprendre le code
    Par jfreuff dans le forum Assembleur
    Réponses: 2
    Dernier message: 31/01/2006, 17h54
  5. Comprendre un code asm relatif aux bitmaps
    Par sorry60 dans le forum Assembleur
    Réponses: 8
    Dernier message: 20/04/2005, 21h31

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