Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu][Javascript] Ajax et variables globales
Auteur Message
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #11
RE: Ajax et variables JS globales
C'est ce qui explique que tu ne réussi pas à résoudre ton problème.
Quand tu as un bug et que tout tes tentatives pour essayer de le résoudre n'ont menée à rien, il ne faut plus essayer d'être le plus proche possible du cas final.

Il faut isoler le bug, et essayer de l'extraire du contexte et de le reproduire. Et donc, enlever tout ce qui est inutile, et garder que ce qui concerne le bug.
09-27-2008 08:54 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Ruz Hors ligne
Membre

Messages : 182
Inscription : Apr 2008
Réputation : 1
Message : #12
RE: Ajax et variables JS globales
http://www.supraonline.be/Jeu/test_tres_simplifie.php

plus simple, ca va plus (meme la fonction de debug va meme plus)

a noter que si j'initialise le tableau, ca passe...
Donc, soit c'est ma fonction qui récupère les données de t_decor qui foire (qui est exactement la meme que dans la fonction), soit je ne rajoute pas les données correctement dans load_decor()

EDIT: au chargement, y a une requete qui se fait pour charger 3 décors

attendez, je cherche...
(Ce message a été modifié le : 09-27-2008 09:19 PM par Ruz.)
09-27-2008 09:18 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #13
RE: Ajax et variables JS globales
C'est normal que ton test ne marche pas.
Tu appel show_decor avant que l'appel ajax soit terminé.
Donc avant que t_decor soit remplis.
09-27-2008 09:39 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Ruz Hors ligne
Membre

Messages : 182
Inscription : Apr 2008
Réputation : 1
Message : #14
RE: Ajax et variables JS globales
effectivement, si je rappelle ma fonction plus tard, ca passe...
merci 34

Bon, comment puis-je bloquer la suite tant que l'appel ajax n'est pas fini?

si je passe en synchrone, ca marche pas... j'ai bien ma réponse, mais rien derrière pour remplir le tableau...
une solution à me suggérer?

attendez, je cherche...
09-27-2008 09:49 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #15
RE: Ajax et variables JS globales
il faut que ça soit après ton traitement des données reçues en ajax que tu appel ta fonction d'affichage.
09-27-2008 09:50 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Ruz Hors ligne
Membre

Messages : 182
Inscription : Apr 2008
Réputation : 1
Message : #16
RE: Ajax et variables JS globales
hum... oui...

la fonction d'affichage doit se mettre en route quand j'ai 3 appels ajax distincts qui sont terminés (décors, monstres, actions possibles)

donc, dans mon cas, je dois lancer l'affichage si les 3 sont entièrement terminées...
mettre un switch à 1 quand une est finie... et je dois avoir 3 switchs à 1 pour autoriser le script d'affichage...

reste à faire patienter l'autre fonction pendant ce temps... hum... vais tester un truc du genre, voir ce que ca donne...
Yop!
avec un petit setTimeOut, ca aide déjà pas mal...

merci encore 34

attendez, je cherche...
09-27-2008 09:57 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #17
RE: [Résolu] Ajax et variables JS globales
Tu devrais plutôt utiliser des variables, sinon ça risque de boguer aléatoirement.
Chaque ajax met à 1 une variable qui dit qu'il a bien reçu la réponse ajax et traité les données et vérifie si les deux autres ont déjà mis à 1 chacun leur variable respectives, si c'est le cas il fait l'affichage.

Où encore mieux, tu englobes tout dans un appel ajax 16
09-27-2008 10:32 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Ruz Hors ligne
Membre

Messages : 182
Inscription : Apr 2008
Réputation : 1
Message : #18
RE: [Résolu] Ajax et variables JS globales
oui, c'est ce que j'ai fait...

trois variable:
SW_decor
SW_action
SW_monstre

et a l'affichage:
if(SW_decor===1 && SW_action===1 && SW_monstre===1){**affichage **}
else{setTimeOut()}

Sinon, ton englobage, tu ferais ca comment?

attendez, je cherche...
09-28-2008 10:24 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #19
RE: [Résolu] Ajax et variables JS globales
Je t'avouerais que je n'ai pas regardé pourquoi tu as 3 appels ajax.
Donc, pourquoi en as tu 3 ? A quoi te servent les 3 ?
Oups, avec les trois variables dont tu parles je vois maintenant.
Et bien tu peux très bien faire un seul appel Ajax qui te retourne les 3 informations.
Et d'ailleurs, tu devrais utiliser du JSON plutôt que ton système.

Et même, un Framework Javascript je dirais :-)
09-28-2008 11:35 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Ruz Hors ligne
Membre

Messages : 182
Inscription : Apr 2008
Réputation : 1
Message : #20
RE: [Résolu][Javascript] Ajax et variables globales
ca fait partie d'un tout: affichage d'une sous-carte

je stocke le max d'infos réutilisables, pour diminuer au max les transferts venant du serveur.

Donc,e n gros, quand j'ai besoin de mettre ma carte à jour:
1) ajax appel 1: demande des infos de la carte, formatées selon une méthode qui m'est propre
en gros, une chaine [données d'une case][][][][][][]...[dernière case]*liste_décors*liste_actions*liste monstres(en très résumé)

*** mes 3 appels ***
2) je vérifie que j'ai déjà chargé tous les décors à afficher. Si oui, ok, si non, je charge les manquants
3) je vérifie que j'ai déjà chargé toutes les actions à afficher. Si oui, ok, si non, je charge les manquantes
4) je vérifie que j'ai déjà chargé tous les monstres à afficher. Si oui, ok, si non, je charge les manquants

5) je vérifie que tout est chargé (cfr ce post).
si NON => je relance la fonction plus tard
si OUI=> je crée les divs nécessaires et je les affiche avec tout ce qu'il faut...

(en fait, y en a 4 34)

en comparaison:
un appel classique "tout serveur" : 80 à 100Ko / appel
appel comme ici : 2Ko/appel + chargement des décors, actions, monstres 1 seule fois chaque... bref: très très peu de trransfert... mais JS qui mouline (enfin, c'est flouide, hein 34)

attendez, je cherche...
09-28-2008 02:01 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse 



ContactJeuWeb (JeuPHP) - Crée ton jeu par navigateurRetourner en hautRetourner au contenuVersion bas-débit (Archivé)Syndication RSS