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

IGN API Géoportail Discussion :

Erreur JQuery et nouvelle version 1.0


Sujet :

IGN API Géoportail

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut Erreur JQuery et nouvelle version 1.0
    Bonjour,

    Depuis la récente version 1.0, Firebug reporte le problème suivant : elem.body is null au chargement de mon appli web.

    L'API est chargée de même que GeoportalExtended.js mais l'exécution s'arrête à la première option (container), donc pas d'affichage de carte.

    La ligne concernée dans JQuery 1.4.2 est soulignée dans le fragment de JQuery suivant :

    return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window?
    // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
    elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] ||
    elem.document.body[ "client" + name ] :

    // Get document width or height
    (elem.nodeType === 9) ? // is it a document
    // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
    Math.max(
    elem.documentElement["client" + name],
    elem.body["scroll" + name], elem.documentElement["scroll" + name],
    elem.body["offset" + name], elem.documentElement["offset" + name]
    ) :

    // Get or set width or height on the element
    size === undefined ?
    // Get width or height on the element
    jQuery.css( elem, type ) :

    // Set the width or height on the element (default to pixels if value is unitless)
    this.css( type, typeof size === "string" ? size : size + "px" );
    Une erreur similaire survient avec la version de JQuery 1.3.2.

    Le déboggeur de Chrome renvoie l'erreur suivante à la même ligne de JQuery : Uncaught TypeError: Cannot read property 'scrollHeight' of null

    L'erreur ne semble pas survenir avec la version Geoportal.js.

    Il serait opportun que les changements de code fassent l'objet de versions spécifiques afin d'offrir au développeur un peu de stabilité.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 133
    Par défaut Stabilité des versions
    Je pense qu'il faut mieux avoir la version de l'API en local pour s'affranchir des changements de versions du site Geoportail.
    Tant que les sources de données (cartes/photos/...) restent avec le même protocole (wms-c/...) et que la gestion de la clé reste identique, l'application continue de fonctionner.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Je pense qu'il faut mieux avoir la version de l'API en local pour s'affranchir des changements de versions du site Geoportail.
    Tant que les sources de données (cartes/photos/...) restent avec le même protocole (wms-c/...) et que la gestion de la clé reste identique, l'application continue de fonctionner.
    La même erreur apparaît en local avec la source 1.0 Geoportail-API-1.0-src.zip actuellement proposée. Comme elle n'est pas taggée avec une date, impossible de savoir si c'est la version initiale de mars ou la nouvelle.

    Pour contourner le problème temporairement, j'ai rapatrié localement JQuery et commenté les 2 parties incriminées :

    return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window?
    // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
    elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] ||
    elem.document.body[ "client" + name ] :

    // Get document width or height
    (elem.nodeType === 9) ? // is it a document
    // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
    Math.max(
    elem.documentElement["client" + name],
    /* elem.body["scroll" + name],*/ elem.documentElement["scroll" + name],
    /* elem.body["offset" + name],*/ elem.documentElement["offset" + name]
    ) :

    // Get or set width or height on the element
    size === undefined ?
    // Get width or height on the element
    jQuery.css( elem, type ) :

    // Set the width or height on the element (default to pixels if value is unitless)
    this.css( type, typeof size === "string" ? size : size + "px" );
    C'est un peu plus long à charger maintenant, mais au moins la carte apparaît.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 133
    Par défaut
    Les sources (https://api.ign.fr/geoportail/api/do...PI-1.0-src.zip) sont ceux de la version actuelle.
    Un passage dans un 'packer' permet de gagner en temps de télé-chargement.

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Par défaut
    Ce qui serait vraiment sympa serait d'avoir un code montrant comment tu utilises jQuery avec l'API.

    Le seul vrai changement entre la version 1.0bêta5 que j'envoyais au forum et la version 1.0 est la façon dont l'API est chargée (via api?) ... et là, il est possible qu'il y ait un conflit entre les API.

    Pour les changements de versions, je rejouterai la date de publication dans l'API.
    Je conseille très largement (comme l'indique mga_geo) de développer :

    * avec une version locale de l'API;
    * de tester avec les différentes corrections de production en ne montant que les versions qui permettent à l'application de continuer à fonctionner.

    Pour les versions API qui ne fonctionnent pas ou plus, la bonne pratique est :
    * toujours récupérer le code source complet lors d'une publication;
    * le déployer en local sans fusion/compression des javascripts;
    * partager les erreurs sur le forum.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Ce qui serait vraiment sympa serait d'avoir un code montrant comment tu utilises jQuery avec l'API.
    J'utilise JQuery pour la gestion de l'interface principalement, rien de bien transcendant.


    Citation Envoyé par dgrichard Voir le message
    Le seul vrai changement entre la version 1.0bêta5 que j'envoyais au forum et la version 1.0 est la façon dont l'API est chargée (via api?) ... et là, il est possible qu'il y ait un conflit entre les API.
    Je n'ai pas testé la 1.0bêta5, j'ai tout re-codé de la bêta4 à la v1.0 de mars. Fin mars tout fonctionne correctement, je passe à autre chose. Le 15 avril je teste l'appli, ayant eu de nouvelles idées, et là erreur de JQuery. Donc le problème est survenu entre la version 1.0 de mars et la 1.0 actuelle. Maintenant il est aussi fort possible que ce soit un faux positif : j'ai conservé une version de mon appli datée du 3 mars qui passe sans problème. Je suis en train de réduire le code pour trouver le coupable mais c'est long (2000 lignes truffées de php).


    Citation Envoyé par dgrichard Voir le message
    Pour les changements de versions, je rejouterai la date de publication dans l'API.
    C'est apprécié, merci. De même que les conseils.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Les sources (https://api.ign.fr/geoportail/api/do...PI-1.0-src.zip) sont ceux de la version actuelle.
    J'avais deviné.

    Citation Envoyé par mga_geo Voir le message
    Un passage dans un 'packer' permet de gagner en temps de télé-chargement.
    J'ai "re-minifié" le JQuery modifié mais je suis obligé de le charger depuis mon propre serveur maintenant (de googleapis avant). Je n'utilise pas les versions 'packers' (trop de problèmes).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. déclarer une nouvelle version de Tomcat
    Par keopsk dans le forum JBuilder
    Réponses: 9
    Dernier message: 02/07/2004, 22h28
  2. Réponses: 1
    Dernier message: 06/04/2004, 11h01
  3. Nouvelle version de MySql
    Par syannic dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 17/03/2003, 17h39

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