jQuery hosted on Google and some implications for developers est un billet qui répond à trois questions que l’on se pose généralement avant d’utiliser une version de jQuery hébergée sur les serveurs de Google :
1. Google peut tomber en panne
C’est peu probable, mais au cas où, nous pouvons détecter si la variable jQuery
a été initialisée ou pas, auquel cas, on peut aller chercher jQuery sur notre serveur.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script> if (!jQuery) { document.write('<script src="/js/jquery.min.js"></script>'); } </script>
2. Google peut en profiter pour modifier notre DOM
C’est un risque que l’on court chaque fois que l’on installe un script. Mais si vous utilisez déjà un outil de mesure d’audience comme Google Analytics, vous avez déjà pris ce risque…
3. Google peut collecter des données personnelles
Idem.
Plus d’information dans le billet Avec AJAX Libraries API, c’est si simple de mettre à jour son jQuery ! et plus particulièrement dans les commentaires.
Le serveur distant peut ramer.
Il y aussi l’éventuel problème des changements d’emplacements des ressources. Par exemple j’avais utilisé :
http://ui.jquery.com/testing/themes/base/ui.all.css
Je m’étais méfié du « testing » dans l’url mais l’ayant trouvé sur du code quelque part sur le site jqueryui.com, je me suis que l’url serait pérenne. Pan sur le bec !
Rien de grave on était encore en développement, mais confiance zéro désormais dans les appels sur site externe.
Si le serveur hébergeant les les bibliothèques js tombe en panne ou si les urls ont changé, on peut utiliser alors la méthode proposée en 1.
Mais quel intérêt ?
-> Une meilleure chance de prise en charge sur d’éventuels nouveaux navigateurs.
L’économie de bande passante est marginale et après tests la rapidité d’accès à la ressource est meilleure sur le site local dans le cas du projet évoqué plus haut.
Et les problèmes 1, 4 et 5 sont valables dans tous les cas d’hébergement tiers, pas que pour google.
Perso j’ai abandonné les appels distants et préfère tout garder en local.
Commentaire à supprimer.
Dans mon commentaire j’avais mis 4 et 5 et non 1 et 2. Ce qui rend le commentaire beaucoup moins compréhensible.
Ah le traitement automatique des listes…
A noter que l’on peut écrire :
google.load("jquery", "1.4.2");
oui, mais pour cela, il faut inclure l’api de google, ce qui n’est pas forcément utile à tous le monde
if (!jQuery) {
document.write('');
}
Chez moi, ce script ne fonctionne pas sous firefox 3.6
Il considère le premier
(celui inclus entre parenthèse comme étant la fin du script.
J’ai donc
);}
déplacé dans le body. Et le script inéficaceOups, pardon, je n’ai pas converti les chevrons 🙁
<script>
if (!jQuery) {
document.write('<script src="/js/jquery.min.js"></script>');
}
</script>
Chez moi, ce script ne fonctionne pas sous firefox 3.6
Il considère le premier
</script>
(celui inclus entre parenthèse comme étant la fin du script.J’ai donc
);}
déplacé dans le body. Et le script inefficace.Il faut l’écrire de cette façon, afin qu’il ne soit pas interprété :
if (!jQuery) { document.write(''); }
arf j’ai fais la même…
Donc j’écrivais :
<script> if (!jQuery) { document.write('<scr'+'ipt src="/js/jquery.min.js"></sc'+'ript>'); } </script>
En coupant et script au milieu par une concaténation.
Bonjour,
J’utilise les serveurs Google mais je me pose quand même quelques questions. Pourquoi ne parle-t-ton jamais d’utiliser directement le serveur jquery.com ?