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

jQuery Discussion :

[Article] jQuery.loadScript : Chargez en Ajax des fichiers scripts déboguables


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier Avatar de marcbuils
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 99
    Points : 124
    Points
    124
    Par défaut [Article] jQuery.loadScript : Chargez en Ajax des fichiers scripts déboguables
    Bonjour,

    Vous ne vous êtes jamais retrouvé avec un script impossible à déboguer parce qu'il avait été chargé en Ajax ?
    Si oui, je vous propose cet article qui vous guidera pour déboguer ce script grâce à l'utilisation du plugin jQuery.loadScript :
    Chargez en Ajax des fichiers scripts déboguables

    N'hésitez pas à faire part de vos remarques et surtout, bon code !

    Marc

  2. #2
    Membre régulier Avatar de marcbuils
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    Bonjour,

    Je viens de faire une petite correction dans l'article car je viens de m'apercevoir que depuis la version 1.5 de jQuery, le fonction jQuery.getScript retourne un objet jQuery.Deferred alors que j'étais persuadé du contraire...


    Excusez-moi pour cette petite coquille

    Marc

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Je ne suis pas sûr de comprendre, en quoi charger un script en AJAX le rend difficile à déboguer ? Avec l'inspecteur Webkit, il apparaît dans les ressources et on peut utiliser breakpoints et autres outils de la même façon que s'il était chargé via une balise <script>.

    Aussi, pouvez-vous préciser qu'est-ce qu'apporte $.loadScript en comparaison avec $.getScript ? Ce n'est pas très explicite dans l'article, tout ce que j'ai retenu est que le success callback est appelé sans arguments.

  4. #4
    Membre régulier Avatar de marcbuils
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    Bonjour SylvainPV,

    La fonction $.getScript de jQuery charge les scripts de manières différentes si le script est local (sur la même machine que la page HTML) ou si le script est distant.
    Autant lorsque le script est distant, il est déboguable au même titre que les fichiers chargés depuis une balise script, par contre lorsque celui-ci est local, jQuery utilise Ajax pour le charger ce qui le rend illisible pour les débogueur car tout le code s'affiche sur une seule ligne.

    C'est dans ce cas que $.loadScript devient intéressant

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par marcbuils Voir le message
    jQuery utilise Ajax pour le charger ce qui le rend illisible pour les débogueur car tout le code s'affiche sur une seule ligne.
    Je n'ai jamais observé ce comportement. Charger en AJAX ne change pas la source, qui devrait donc s'afficher de la même façon. Êtes-vous sûr que cela ne provient pas de votre debugger ou d'une mauvaise configuration de votre serveur qui minimise automatiquement les scripts ?

    J'ai réalisé un test avec un script local chargé avec jQuery.getScript, la source m’apparaît bien formatée :
    http://i.imgur.com/1lBHH.png
    Images attachées Images attachées  

  6. #6
    Membre régulier Avatar de marcbuils
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    C'est étonnant, je n'ai pas du tout le même comportement.
    Sur le débogueur de Chrome, le script chargé par l'intermédiaire de $.getScript n'apparait même pas alors qu'il est correctement exécuté. Et c'est un problème que je rencontre, moi mais aussi d'autres personnes avec qui j'en ai parlé, depuis des années et sur de nombreux serveurs différents.

    Voici un aperçu:
    http://i.imgur.com/ZiqBt.png
    Images attachées Images attachées  

  7. #7
    Membre régulier Avatar de marcbuils
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par SylvainPV
    J'ai réalisé un test avec un script local chargé avec jQuery.getScript, la source m’apparaît bien formatée :
    http://i.imgur.com/1lBHH.png
    SylvainPV, en regardant de plus près ton aperçu d'écran, je me suis redu compte que l'onglet que tu présentes est l'onglet "Network", ce qui signifie que tu vois bien le fichier être appelé en Ajax.
    Par contre Chrome ne te permet pas de placer des points d'arrêts dans ton code ou encore espionner la valeur des variables.
    C'est ce genre de choses que te permet de faire la fonction $.loadScript.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/02/2010, 22h04
  2. Upload des fichier avec AJAX
    Par Pedro Varela dans le forum ASP.NET
    Réponses: 6
    Dernier message: 23/01/2007, 07h52

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