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

APIs Google Discussion :

[Google Earth] Firefox : Un script sur cette page est peut-être occupé ou ne répond plus.


Sujet :

APIs Google

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 47
    Points
    47
    Par défaut [Google Earth] Firefox : Un script sur cette page est peut-être occupé ou ne répond plus.
    Bonjour à tous,


    J'ai un problème avec le plugin Google Earth API et Firefox.
    Sur certains postes J'ai le message suivant qui aaparait au chargement de la carte :

    Un script sur cette page est peut-être occupé ou ne répond plus.
    Vous pouvez arrêter le scrip maintenant, l'ouvrir dans le débogueur ou le laisser continuer.

    Script : http://www.google.com/uds/api/earth/...efault.I.js:33

    [Continuer] [Déboguer le script] [Arrêter le script]
    Si on clique sur continuer, tout fonctionne correctement.

    Le problème c'est que l'erreur ne survient pas de façon systématique.

    1. Sur mon poste de développement (W7 FF12) le problème ne survient jamais.
    2. Sur un autre poste (W7 FF11) le problème survient toujours.
    3. Sur un troisième poste (Vista FF12) le problème survient parfois.
    4. Sur le poste du client (? FF?) le problème survient.


    Du coups je suis un peut perdu et je vois pas trop quoi faire...


    Merci pour votre aide.


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    //Une partie de mon code.
     
    <script type="text/javascript" src="http://www.google.com/jsapi?hl=fr&amp;key=xxxxxxx"></script>
    <script type="text/javascript">
    google.load("earth", "1");
    google.load("jquery", "1.7.1");
     
    $(document).ready(function() {
            google.earth.createInstance('div_google_earth', 
                function /*initCallback*/ (instance) {
                    self.ge = instance;
                    self.gex = new GEarthExtensions(self.ge);
                    self.ge.getWindow().setVisibility(true);
     
                    // add a navigation control
                    self.ge.getNavigationControl().setVisibility(self.ge.VISIBILITY_AUTO);
                    // add some layers
                    self.ge.getLayerRoot().enableLayerById(self.ge.LAYER_BORDERS, true);
                    self.ge.getLayerRoot().enableLayerById(self.ge.LAYER_ROADS, true);
     
                    //console.debug('Création des points : ');
                    jQuery.each(data.list, function(id, point) { 
                        var marker = self.ge.createPlacemark('');
                        var marker_point = self.ge.createPoint('');
                        marker_point.setLatitude(point.lat);
                        marker_point.setLongitude(point.lng);
                        marker.setName(point.n));
                        marker.setGeometry(marker_point);
                        self.ge.getFeatures().appendChild(marker);
                    });
                }, 
                function /*failureCallback*/ (errorCode) {
                    // Que faire en cas d'erreur ?
                }
            );
    });
    </script>

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 682
    Points
    44 682
    Par défaut
    Bonsoir,
    typique d'un script qui prend toute les ressources trop longtemps.

    data.list contient combien d'éléments ?

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Bonjour NoSmoking,

    data.list contient entre 3 et 300 éléments.
    Là, avec 3 éléments, ça marche bien.

    Comment puis-je faire pour améliorer mon programme ?

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 682
    Points
    44 682
    Par défaut
    c'est un grand classique qu'il te faut utiliser pour suspendre, au moins très temporairement le script, c'est l'utilisation de setTimeout.

    Il te faut dans la boucle appeler une fonction de création de tes objets via le setTimeout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function addMarker( ge, point){
      var marker = ge.createPlacemark('');
      var marker_point = ge.createPoint('');
      marker_point.setLatitude(point.lat);
      marker_point.setLongitude(point.lng);
      marker.setName(point.n));
      marker.setGeometry(marker_point);
      ge.getFeatures().appendChild(marker);
    }
    cette fonction reprend le code initial, on passe juste des paramètres pour affectation.

    La fonction principale devenant, tout du moins pour la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    jQuery.each(data.list, function(id, point){
      setTimeout(function(){
        addMarker(self.ge, point);
      }, 1);
    });
    cela devrait le faire.

    Question :
    n'y a t-il pas dans cette API, pas été voir, le moyen de charger un fichier du type des fichiers KML de l'API googleMap, je pense que cela devrait être plus performant.

Discussions similaires

  1. Un sript sur cette page est peut etre occupé ou ne repond plus
    Par etiennosa dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/07/2013, 10h34
  2. Réponses: 0
    Dernier message: 02/07/2012, 16h12
  3. --Erreurs de script sur cette page !
    Par belaggoun2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/10/2009, 13h16
  4. [JavaScript] [SRC] Rechercher sur cette page
    Par FremyCompany dans le forum Contribuez
    Réponses: 2
    Dernier message: 09/03/2007, 17h10
  5. relancer un script sur une page déjà chargée
    Par vraipolite dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/03/2006, 09h28

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