JeuWeb - Crée ton jeu par navigateur
[Résolu][Javascript] variable Globale tableau qui coince - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Javascript] variable Globale tableau qui coince (/showthread.php?tid=1828)



[Résolu][Javascript] variable Globale tableau qui coince - Ruz - 11-05-2008

Hello!
Question théorique, suite à un problème pratique:

Je crée mon chat ajax, de base. Pour limiter au max le transfert de données, j'ai pris deux idées de base: une fois la page affichée, j'appelle une fonction load_chat(); qui va me demander (ajax) les messages posté depuis ma dernière demande (donc, jamais, au début).
Je recois mes messages, et je les stocke dans une variable array() définie au tout début de ma partie JS (hors de toute fonction, tout premier truc déclaré). A l'arrivée des infos, je mets ces données (ID utilisateur, message, time) dans le tableau, dans une nouvelle ligne. Ca, ca marche. (bref: tous les messages sont dans un tableau JS, qui grossit à chaque requete ajax)

Cette fonction, une fois finie, appelle une fonction maj_chat(), dont le but est de reprendre les messages, les mettre en forme, et les envoyer dans le div correspondant. Ca marche aussi.
Oui, mais j'ai l'ID utilisateur, pas son nom (oui, c'est fait expres... un ID est plus léger qu'un pseudo)... meme pricncipe: un autre tableau JS, déclaré juste après le premier (celui des messages). A chaque message dans le tableau 1, je vérifie si l'ID utilisateur a une correspondance dans le tableau des Pseudos. Si oui => je le récupère, et je passe au message suivant. Si non => ajax (nouvelle fonction): je le récupère. La fonction me sort bien en retour la chaine "ID*Pseudo". Par contre, IMPOSSIBLE de rajouter ces données dans le tableau des Pseudos... (j'ai essayé le copier/coller du code des messages, rigoureusement identique, sans succès)

Auriez-vous une idée du pourquoi que ca va pas?


RE: [JS] variable Globale tableau qui coince - Ruz - 12-05-2008

personne n'a d'idées???

Je remarque aussi que tableau.length n'a pas de propriétés.
Là, je sèche...


RE: [JS] variable Globale tableau qui coince - Cartman34 - 12-05-2008

je n'ai pas tout compris mais peut etre qu'une bout de code nous aiderait, non?


RE: [JS] variable Globale tableau qui coince - Ruz - 12-05-2008

y a plus de bout de code... j'en ai eu marre, j'ai tout effacé et recommencé.

en très résumé; deux tableaux, déclaration du genre "var tab1 (ou 2) = new Array();" en tout début de page)

Plus loin, dans des fonctions:
cpt=tab1.length;
tab1[cpt]=Array(d[0], d[1]);

et idem avec tab2 dans une autre fonction, appelée par la première.

ca marche pour le premier tableau, pas l'autre.
Quelles pourraient être les causes?

une variable globale étant accessible partout, je suis largué.
La question étant d'ordre théorique...


Sinon, j'avais encore un autre soucis avec JS: les timers, mais remplacer setTimeout par setInterval a résolu ce problème..
Rien à faire, je suis allergique à JS... je hais ce language.


RE: [JS] variable Globale tableau qui coince - Cartman34 - 12-05-2008

Je crois que c'est normal, les langages coté clients sont très mal fait...encore que le XHTML est bien fait mais dès qu'on s'aventure dans le CSS/JS, c'est une misère pas possible.

Je n'ai pas compris le rapport avec length...


RE: [JS] variable Globale tableau qui coince - Ruz - 12-05-2008

Bon, problème résolu.
Aucune idée de ce que j'ai changé oO

Sinon, le length, c'était la seule erreur qui ressortait via firebug. mais, ca, j'ai compris l'origine.(normal, si je retourne OK*ID$nom... ou OK* ) et que je splitte sur * => la 2e fois, le tab[1] n'existe pas, donc pas de propriété (un truc qui n'avait finalement, rien à voir... ca m'apprendra à pas tester la valeur de sortie.)