Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/07/2011, 15h11   #1
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 4
Points : 0
Points : 0
Par défaut Problème XHR, JSON, callback

Bonjour, je débute en AJAX et j'ai un souci avec mon code:
Code :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
var Game = {
	v: '0.1a',
 
	launch: function(can) {
		document.title += ' version '+this.v;
		this.json.request(this.map.load, 'pulau.json');
		this.map.draw(can);
	},
 
	map: {
		n: '',
		t: new Array(),
		c: new Array(),
 
		load: function(d) {
			this.n = d.n;
			var t = new Array();
			var i;
			for(i = 0; i < d.t.length; i++) {
				t[i] = new Image();
				t[i].src = d.t[i];
			}
			this.t = t;
			this.c = d.c;
		},
		draw: function(can) {
			alert(this.c[1][4]);
		}
	},
 
	json: {
		getXHR: function() {
			var r = null;
			try {
				r = new XMLHttpRequest();
			}
			catch(e) {
				if(window.ActiveXObject) {
					try {
						r = new ActiveXObject('Msxml2.XMLHTTP');
					}
					catch(e2) {
						r = new ActiveXObject('Microsoft.XMLHTTP');
					}
				}
			}
			return r;
		},
		request: function(callback, f) {
			var r = this.getXHR();
			r.onreadystatechange = function() {
				if (r.readyState == 4 && (r.status == 200 || r.status === 0)) {
					if(JSON) {
						callback(JSON.parse(r.responseText));
					}
					else{
						callback(eval('('+r.responseText+')'));
					}
				}
			};
			r.open('GET', f, true);
			r.send(null);
		},
	}
};
Le souci est:
Lorsque Game.map.load() est appellé, les modifications des variables ne s'effectuent pas réellement. Ce qui fait que lorsque j'essaye d'utiliser les valeurs ensuite dans Game.map.draw(), les valeurs sont encore initialisées comme au début.

J'attends donc une réponse à ma question:
Pourquoi ? Pourquoi les valeurs de n, t et c ne sont pas modifiées correctement dans Game.map.load() ? Cela doit être du au callback, mais je ne comprend pas...

Merci BEAUCOUP d'avance, j'attends votre réponse

Ce qui fait que le changement de valeur de this.c n'est pas
maislol16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h11.


 
 
 
 
Partenaires

Hébergement Web