Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 15/12/2010, 16h32   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 236
Points : 62
Points : 62
Par défaut je vais mourir du tableau ou du cerveau

salut tout le monde ...j'ai un truc de merde une fois de plus ...
et je craque

voici un petit bout de code jquery

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
var arr_positions = Array(1,2);
function load_arr() {
      return Array(1,2);
}
 
$(document).ready(function(){
 
 
		//mise a jour
		var arr_positions =  load_arr() ;
		alert ('yo');
 
		trace ('arr_positions=');
		trace(arr_positions);
 
});
ma fonction load_arr renvoie un tableau via return montableau
testé et approuvé ...je suis sur qu'elle return un tableau ... bon

eh bien je n'ai rien dans mon trace !!! undefined !!
ça me fait craquer le cerveau là ...
HELP:
CaviarNAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 16h33   #2
Membre du Club
 
Inscription : janvier 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 236
Points : 62
Points : 62
petite rectif ...
en fait si je faire direct return array ça marche ...mais ma fonction ressemble plus à ça en fait (je voulais simplifier)

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
function load_arr() {
	trace('chargement de la sauvegarde');
 
	//return Array(1,2);
 
 
	theData.get('positions', 
		function(theSettings) {
			// Test we actually got a settings object
			if (theSettings) {
				// We did, so put the values in to the form fields 
				var arr_return = '0,'+theSettings.arr;
				trace ('tableau de sauvegarde charge');	
				trace (arr_return);	
 
				var arr_positions = arr_return.split(",");
 
trace ('tableau arr_positions 111');	
trace(arr_positions);	
 
	return arr_positions; //je veux recup ce tableau en fait
 
 
				displayMessage("loaded!");				
			} else {
				trace("No settings found!");
				var arr_positions = arr_base_positions;
 
				//on sauvegarde le tableau de base
				save_arr(arr_base_positions);
			}
 
			//on renvoie le tableau chargé
			trace ('tableau arr_positions ');	
			trace(arr_positions);				
 
		} // function(theSettings)
 
 
 
	);
	trace ('tableau arr_positions xxxx ');	
	trace(arr_positions);	
 
	return arr_positions; //mais je recup ce tableau là que je m'en fout car il est pas encore traité...
}
le pire c'est que je comprends pourquoi mais j'arrive pas à résoudre le pb
en fait la fonction load_arr renvoie son return avant d'avoir le résultat de thedata.get (celui qui m'intéresse)
du coup mon core continue avec le mauvais tableau ... (non mis à jour)

et comme cette fonction doit pouvoir être utilisée de façon indépendante ... je ne peux pas faire d'appel de la suite de mon code au moment de la réponse ...

il faudrait que je puisse introduire la notion de synchronicité ... mais je sais pas comment ...
++
CaviarNAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 16h34   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 001
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 001
Points : 45 077
Points : 45 077
c'est quoi trace ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 16h41   #4
Membre du Club
 
Inscription : janvier 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 236
Points : 62
Points : 62
lol
trace c'est une fonction à la con pour avoir un retour à l'écran
bien pratique cependant

Code :
1
2
3
4
5
6
7
8
9
10
11
function is_array(input){
    return typeof(input)=='object'&&(input instanceof Array);
  }
 
function trace (txt) {
	if (is_array(txt)) {
		$('#trace').append('Array : '+txt.join(" , ")+'<hr />');
	} else {
		$('#trace').append(txt+'<hr />');
	}
}
en gros pour mieux situer je bosse sur des test des fonctionnalités SQlite avec les navigateurs chrome et autre pour stocker des datas en local ....

la fonction get est la suivante (c'est pas moi qui l'ai codée hein)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
get:function(key, callback) {
		var that = this;
		this.db.transaction(function(t) {
			t.executeSql(
				"SELECT value FROM " + that.table + " WHERE id = ?",
				[key],
				function(tx, results) {
					if (results.rows.length == 0) {
						callback(null);
					} else {
						var o = that.deserialize(results.rows.item(0).value);
						o.key = key;
						callback(o);
					}
				},
				this.onError
			);
		});
	},
CaviarNAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 16h48   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 001
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 001
Points : 45 077
Points : 45 077
console.log de firebug quoi ...

quel est donc ton souci avec ton array ?
tu cherches à faire quoi à la base ?

Code :
1
2
3
4
5
6
7
var arr_positions = Array(3,6);
function load_arr() {
      return Array(1,2);
}
 
	arr_positions =  load_arr() ;
		alert (arr_positions[0]);
la fonction loade bien tu veux quoi de plus.?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 17h00   #6
Membre du Club
 
Inscription : janvier 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 236
Points : 62
Points : 62
en gros voila le principe
j'ai un tableau arr_positions initialisé au chargement de la page

à un moment je veux le mettre à jour avec ma fonction load_arr qui fait un appel à une fonction (theData.get('positions', ... ) qui va aller lire une donnée dans une base sqlite (en asynchrone à priori) et me la retourner...

sauf que entre temps load_arr a deja fait son retun à mon code qui continue à s'exécuter sans attendre que mon tableau soit mis à jour ...
du coup ça marche pas ...

je voudrai attendre ma réponse et ensuite renvoyer le résultat à mon code ...

mais je sais pas si c'est possible ...

-----
Citation:
console.log de firebug quoi ...
ouaip ...mais je suis obligé de développer sous safari là ... car firefox ne gère pas sqlite
CaviarNAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 18h02   #7
Membre expérimenté
 
Duke Jikel
Inscription : mai 2010
Messages : 339
Détails du profil
Informations personnelles :
Nom : Duke Jikel

Informations forums :
Inscription : mai 2010
Messages : 339
Points : 546
Points : 546
Citation:
Envoyé par CaviarNAS Voir le message
en gros voila le principe
j'ai un tableau arr_positions initialisé au chargement de la page

à un moment je veux le mettre à jour avec ma fonction load_arr qui fait un appel à une fonction (theData.get('positions', ... ) qui va aller lire une donnée dans une base sqlite (en asynchrone à priori) et me la retourner...

sauf que entre temps load_arr a deja fait son retun à mon code qui continue à s'exécuter sans attendre que mon tableau soit mis à jour ...
du coup ça marche pas ...

je voudrai attendre ma réponse et ensuite renvoyer le résultat à mon code ...

mais je sais pas si c'est possible ...

-----
ouaip ...mais je suis obligé de développer sous safari là ... car firefox ne gère pas sqlite
safari a une console JS et tu peux aussi faire console.log
dukej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 19h37   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 001
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 001
Points : 45 077
Points : 45 077
et appeler la fonction dans ton callback ?

ou tester un retour de sqlite ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 10h41   #9
Membre du Club
 
Inscription : janvier 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 236
Points : 62
Points : 62
Ah cool pour safari
ben j'ai fait l'appel dans le callback au final ... ça marche mais ça m'obligera sans doutes à dupliquer la fonction si j'ai besoin d'un autre callback ...
faut que je teste les perfs...
m'enfin si il n'y a pas d'autres moyens ...
CaviarNAS 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 04h49.


 
 
 
 
Partenaires

Hébergement Web