IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ordre d'execution avec ajout dans DOM


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    D�tails du profil
    Informations personnelles :
    �ge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par d�faut Ordre d'execution avec ajout dans DOM
    Bonjour,

    J'un probl�me de timing et ordre dans mes fonctions. Je pr�cise que je travaille avec l'api de google maps, mais que le probl�me n'est pas li�.

    En r�sum� :

    - Je g�n�re avec php un fichier XML contenant mes donn�es (donn�es al�atoires)
    - Je lis ce fichier avec JS grace a la commande 'downloadUrl' de l'outil de google (http://gmaps-samples-v3.googlecode.c...nk/xmlparsing/)
    - Je pr�charge mes icones de markers en les ajoutant au DOM dans un div invisible
    - Je charge mes markers sur la carte en chargeant une icone perso (pr�charg�e), que je redimenttionne avec un 'new google.maps.MarkerImage(icone, null, null, null, scale)'
    - Tout fonctionne tr�s bien.

    Voici mon code (abbregg�) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    	downloadUrl(searchUrl, function(data) {
    		preloadImg(data); 
    		getMarkers(data);
    	});
     
    	function preloadImg(data){
    		markersXml = data.documentElement.getElementsByTagName(\"marker\");
    		for (var i = 0; i < markersXml.length; i++) {
    			var img = document.createElement('IMG');
    			img.src = markersXml[i].getAttribute('icon') ;
    			document.getElementById('preloadimages').appendChild(img);
    		}
    	}
     
    	function getMarkers(data) {
    		markersXml = data.documentElement.getElementsByTagName(\"marker\");
    		for (var i = 0; i < markersXml.length; i++) {
     
    			// prépare les markers
     
    			// assigne l'icone à la bonne taille
    			scale = 0.5 ;
    			icone = new google.maps.MarkerImage(markersXml[i].getAttribute('icon'), null, null, null, scale) ;	
     
    			// attache les markers a la carte
    		}
    	}
    Le probl�me est que apparement il n'attend pas que toutes les images soient pr�charg�es avant de placer les markers. De ce fait il ne parvient pas � les redimentionner. En fait il en redimentionne une dizaine, et les suivante sont de taille normale, comme si il n'attendais pas.

    Mon probl�me ne vient pas de google maps, car si dans preloadImg(data); je ne charge qu'une image manuellement, cela fonctionne tr�s bien, elle est bien dimentionn�e dans la carte

    Donc ma question est de savoir comment je peux etre sur que l'ajout des images dans le DOM est r�elment termin� avant de continuer mon code.

    J'avais pens� a un settimeout mais cela ne parait pas tr�s pro...

    Toute aide est bienvenue.

    Merci, C�dric

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Par d�faut une id�e comme �a
    du fait que c'est al�atoire, c'est le cache IE qui a d�j� les images t�l�charg�es.
    Je te propose :
    1- de faire un reset du cache IE et de tester � nouveau
    2- d'essayer de t�l�charger d'un coup toutes les images au d�part.

    D�sol�, je n'ai pas lu ton roman l�-dessus, c'est juste une id�e qui m'a fait toc.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    D�tails du profil
    Informations personnelles :
    �ge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par d�faut
    Oui, alors en effet, j'ai oubli� de pr�ciser dans mon roman, apr�s le premier chargement, c'est bon les images sont dans le cache, et cela fonctionne, le probl�me apparait au premier chargement sur la machine ou apr�s CTRL+F5.

    Ben les images j'essaie de les charger au d�part ... C'est justement mon probl�me.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Par d�faut
    Citation Envoy� par pelloq1 Voir le message
    Ben les images j'essaie de les charger au d�part ... C'est justement mon probl�me.
    tu peux aller chercher toutes les images en faisant une recherche JQuery dans le document HTML sur la balise IMG. J'ai pas le bout de code sous la main mais google est ton ami.

    Bon courage

  5. #5
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonsoir,
    Je pr�cise que je travaille avec l'api de google maps, mais que le probl�me n'est pas li�.
    je veux bien te croire, bien que...
    ...je redimenttionne avec un 'new google.maps.MarkerImage(icone, null, null, null, scale)'
    ce qui n'est pas la syntaxe pr�conis�e par la documentation http://code.google.com/intl/fr/apis/...ml#MarkerImage

    Peut �tre un rapport avec le probl�me rencontr� sur [Google Maps] Souci avec MarkerImage sous IE

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    D�tails du profil
    Informations personnelles :
    �ge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par d�faut
    No Smoking (too), le redimentionnement fonctionne tr�s bien avec une seule image, ou les images en dur dans la page. Meme en les mettant dynamiquement cela marche, mais seulement sur 2 ou 3.

    Pour moi c'est 'juste' j probl�me de timing, car les images n'ont pas le temps de se preloader dans mon div hidden avant d'etre affich�es comme markers redimentionn�s.

    olivieram, je ne vois pas tr�s bien ou tu veux en venir ....

    C�dric

Discussions similaires

  1. [AC-2003] Formulaire en continu avec ajout dans le pied de page
    Par buzz73 dans le forum IHM
    R�ponses: 4
    Dernier message: 22/07/2009, 11h26
  2. R�ponses: 9
    Dernier message: 17/06/2009, 20h29
  3. R�ponses: 1
    Dernier message: 31/10/2008, 00h20
  4. R�ponses: 3
    Dernier message: 14/12/2007, 09h04
  5. R�ponses: 3
    Dernier message: 29/08/2007, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo