|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 204 ![]() |
Bonjour à tous,
Etant plus habitué à python j'apprend js pour utiliser l'api google map. Mais je n'arrive pas à faire un "return" et cela fait un moment que je cherche. Sauriez vous pourquoi pour le code suivant, Dans la fonction adress2latlng j'ai une une valeur pour latlng_local que je n’arrive pas à récupérer dans initialize ? Merci de votre aide Alex Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() |
Bonsoir alexdevl,
J'ai essayé les closures ,les variables globales ,j'ai même fais une classe et tout ce que je récupère c'est le code de la fonction et même le code de la méthode de google Code :
rien n'y fait et c'est un probleme qui m'interesse une fonction dans une méthode d'objet j'ai eu le même soucis avec Prototype. c'est une super closure en gros qu'est que results ? il y aurait pas dans l'api un getter genre results.responseXXX?? Bon courage EDIT results est un objet vide qui renvois object object et 0 et encore object object et 0 etc etc
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
||
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : mars 2011 Messages : 47 ![]() |
salut,
une solution certes de folie, mais qui fonctionne ![]() - Extraire les coordonnées via une fonction dans un element caché - attendre que la valeur ait changé (synchro) ça donne Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() Inscription : mars 2011 Messages : 47 ![]() |
et les variables super globales alors (window[]) !
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() |
Merci ce n'est pas mon topic mais j'apprend quelque chose là
pour la 1er solution j'y avais pensé et pour les variables super globale j'ignorais leurs existences A utiliser avec modération surement mais ça va me rendre service En gros c'est un passage de valeur par réference j'ignorais que c'etait possible en Js...
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#6 | ||||||||||||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Bonjour, pour répondre à
Citation:
en résumé voila ce qui se passe Code :
Code :
Pour l'exploiter il te faut le faire à partir du corps de la fonction anonyme, ou de passer le résultat en paramètre à une fonction. Exemple dans le même style que le code ci dessus Code :
Code :
Citation:
|
||||||||||||
|
|
00
|
|
|
#7 | |
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||||
|
Membre du Club
![]() Inscription : mars 2011 Messages : 47 ![]() |
Citation:
Citation:
L'initialisation peut se faire en 2 étapes Code :
|
||||
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() |
Voilà une solution sans setInterval et sans super global
qui utilise un objet vu que qu'au fond le soucis est la méthode de google qui empêche de récupérer la valeur par des closures Finalement tout devient synchrone avec cette solution Code :
Cela dit comme dit nosmoking on peut trés bien utiliser cette valeur dans sa fonction asynchrone et appeler des classes etc en faire une sorte de Main_fonction
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
||
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() |
une autre solution trés simple créer un cookie dans la fonction anonyme actualiser la page une fois et récupérer la valeur.
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#11 | ||||||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Citation:
la source avec traçage Code :
Code :
Citation:
|
||||||
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() |
oui c'est + ou - des solutions similaires
ensuite ma solution est simple c'est le code orienté objet qui peut sembler la rendre compliqué mais c'est un script que je réutiliserai avec les framework Pour etre franc c'est ta solution qui m'a l'air compliqué ![]() Aprés en programmation et surtout Js chacun a sa propre maniere de programmer et on est plus à l'aise avec sa maniere et c'est toute la richesse de javaScript ma derniere solution est juste un manière de dire que cela peut se faire comme ça mais c'etait juste histoire de dire que c'est possible mais pas souhaitable
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
dans ta solution je remarquais juste que le objet.extract(latlng_local) est en fait adress2latlng(this.value), alors autant mettre directement adress2latlng(latlng_local) dans la fonction, et dans ce cas on fait exactement la même chose, c'est pour cela que je j'ai écris en plus simple me semble t-il.
|
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() |
c'est exact mais c'est volontaire car c'est pour pouvoir créer des méthodes utilisant ultérieurement cette valeur , un getter et un setter
mais la c'est encore plus simple donc en mettant le tout en procédural c d'une simplicité totale Ensuite on pourrait s'amuser à tester laquelle des 2 est la plus rapide mais la ça depend de bcp de parametre En tout cas on a bien travailler il faudra que j'etudie ta solution de prés ça peut me donner des idées car justement ce n'est pas ma maniere de faire
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : mars 2011 Messages : 47 ![]() |
La solution de NoSmoking est surement la plus simple rendant l'ensemble séquentiel, ceci dit (brahim), d'accord avec laurentg2003 sur le fait que la fonction adress2latlng ne pourra plus être utiliser ailleurs puisqu'elle déclenche systématiquement initialize.Bon tout cela dépend évidemment du but recherché, et il y a toujours des solutions pour parer à cela. |
|
|
00
|
|
|
#16 |
|
Membre habitué
![]() |
justement moi je ne veux pas rendre ça séquentielle
dans extract je vais mettre d'autres méthodes avec des signatures differentes via les closures dont le nom sera en parametre dans extract c une maniere de surcharger une méthode et d'avoir un code pourri plein de fuite de mémoires
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#17 | |||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#18 |
|
Membre habitué
![]() |
c'est ce que nos codes font mais moins directement je pense
Mais c'est intéressant merci
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#19 | |
|
Membre confirmé
![]() Inscription : avril 2007 Messages : 204 ![]() |
He bien moi qui croyais avoir un problème de syntaxe
Si je comprend bien le problème central pour moi est celui-ci : Citation:
C'est qu'utiliser une fonction comme celle-ci sur le net demande forcément un temps de traitement D'autre part j'avais l'affichage de intitialize avant adress2latlng et je comprend pourquoi.Je voudrais traiter 300 points, je ne pourrais attendre le traitement de ces 300 points. Je dois donc faire les geocodes avant et utiliser les valeur latlng dans mon script en utilisant néanmoins vos codes Merci de votre aide à tous ! ![]() Alex |
|
|
|
00
|
|
|
#20 | |||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Citation:
Code :
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com