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 :

Comment controler si mon api est d�ja charg�


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par d�faut Comment controler si mon api est d�ja charg�
    Bonjour � tous,

    J'inclus l'api de google map de cette mani�re

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var script = document.createElement("script");
    		script.src = "http://maps.google.com/maps/api/js?v=3.7&sensor=true&callback=googleMapsReady";
    		script.type = "text/javascript";
    		document.getElementsByTagName("head")[0].appendChild(script);
     
    		script.addEventListener("error", function(e) {
        		googleMapsState = "error";
    			console.log('Googlemap Api loading error');
    		}, false);

    Simplement, dans certain cas, je dois la charger si elle ne l'a pas �t�.

    Comment puis-je controler si le script ci-dessus � d�j� �t� charg� ou pas, et le charger et cons�quence. En d'autre de mots, de savoir s'il est se trouve deja dans la balise <script> pour ne pas avoir ce message d'erreur
    Warning: you have included the Google Maps API multiple times on this page. This may cause unexpected errors.
    Aussi, si je perts la connection, y a il un moyen pour qu'il soit "effacer" ou commenter?

    Milles mercis

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activit� : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par d�faut
    Salut,

    Tu peux identifier la balise � l'aide de l'attribut id...

    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
    function loadAPI(){
    	if(document.getElementById('monAPI'))return; // Retour si l'ID est trouvé
     
    	var script = document.createElement("script");
    	script.src = "http://maps.google.com/maps/api/js?v=3.7&sensor=true&callback=googleMapsReady";
    	script.type = "text/javascript";
     
    	script.id = 'monAPI'; // Identifie la balise
     
    	document.getElementsByTagName("head")[0].appendChild(script);
     
    	script.addEventListener(
    		"error",
    		function(e) {
    			script.id = ''; // Supprime l'identifiant
    			googleMapsState = "error";
    			console.log('Googlemap Api loading error');
    		}, false
    	);
    }

  3. #3
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par d�faut
    Ha ben oui,

    J'ai donc corrig� comme ceci:
    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
     
    if($('#googleAPI').length == 0){
     
    			this.googleMapsState = "loading";
     
    			var script = document.createElement("script");
    			script.src = "http://maps.google.com/maps/api/js?v=3.7&sensor=true&callback=googleMapsReady";
    			script.type = "text/javascript";
    			script.id = 'googleAPI';
    			document.getElementsByTagName("head")[0].appendChild(script);
     
    			script.addEventListener("error", function(e) {
    				googleMapsState = "error";
    				console.log('Googlemap Api loading error');
    			}, false);
    		}
    Es-ce que je pourrais faire mieux?

    Merci

  4. #4
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activit� : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par d�faut
    On peux aussi tester l'existence de l'objet (je n'en connais pas le nom) de l'application en m�moire.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(typeof NOM_OBJET=='undefined') // Chargement du script

  5. #5
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par d�faut
    ok merci,

    je pense alors que ca serait mieux d'utiliser

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(typeof $('#googleAPI')=='undefined') // Chargement du script
    au lieu de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    if($('#googleAPI').length == 0){
    ?

    merci pour tes r�ponses...

  6. #6
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Citation Envoy� par Eric2a Voir le message
    On peux aussi tester l'existence de l'objet (je n'en connais pas le nom) de l'application en m�moire.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(typeof NOM_OBJET=='undefined') // Chargement du script
    Il y a une forme � la fois plus efficace et plus claire, ce serait dommage de s'en priver
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if (NOM_OBJET === undefined) // Chargement du script
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  7. #7
    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
    Bonjour,
    pourquoi ne pas faire simplement, un peu comme te la sugg�r� Eric2a
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if( !window.google){
      // chargement du script
    }
    Citation Envoy� par pierrot10
    Simplement, dans certain cas, je dois la charger si elle ne l'a pas �t�.
    je dois admettre que je ne saisi pas comment cela se peut!

Discussions similaires

  1. [umount]Comment controler que mon montage n'est pas busy
    Par pierrot10 dans le forum R�seau
    R�ponses: 4
    Dernier message: 03/02/2011, 18h03
  2. R�ponses: 2
    Dernier message: 05/05/2008, 12h32
  3. R�ponses: 2
    Dernier message: 03/11/2006, 10h36
  4. Comment savoir si mon navigateur est ouvert ?
    Par Chris33 dans le forum R�seau/Web
    R�ponses: 8
    Dernier message: 18/07/2006, 14h51
  5. [CF][C#]Comment d�terminer si mon PPC est bien connect�?
    Par royrremi dans le forum Windows Mobile
    R�ponses: 2
    Dernier message: 07/03/2006, 15h35

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