Dernière version de jQuery sur le CDN de Google

103

J'ai lu dans la doc officielle du CDN Google que c'est le srcto jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

Cependant, il est ennuyeux de devoir changer ma srcréférence jQuery à chaque mise à jour de version.

J'ai constaté que si je définis la version sur, 1Google renvoie la dernière version de jQuery.

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
/*! jQuery v1.8.2 jquery.com | jquery.org/license */

Est-ce la bonne chose à faire? Existe-t-il une URL officielle pour référencer la dernière version de jQuery hébergée sur le CDN Google?

Martin Borthiry
la source
vérifiez que ce message est plus ancien. Donc, l'autre est le double
Martin Borthiry
1
Ceci est un double de stackoverflow.com/questions/441412/… (demandé le 14 janvier 2009)
Nick Pierpoint
1
@MartinBorthiry Cela n'a pas nécessairement d'importance
Blazemonger

Réponses:

182

MISE À JOUR 7/3/2014: À partir de maintenant, jquery-latest.jsn'est plus mis à jour. Depuis le blog jQuery :

Nous savons que http://code.jquery.com/jquery-latest.js est abusé en raison des statistiques CDN montrant que c'est le fichier le plus populaire. Ce ne serait pas le cas s'il n'était utilisé que par les développeurs pour créer une copie locale.

Nous avons décidé d'arrêter de mettre à jour ce fichier, ainsi que la copie réduite, en conservant les deux fichiers à la version 1.11.1 pour toujours.

L'équipe Google CDN s'est jointe à nous dans cet effort pour éviter les ruptures de site Web par inadvertance et ne met plus à jour le fichier à l' adresse http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js . Ce fichier restera également verrouillé à la version 1.11.1.

La réponse suivante, désormais sans objet, est conservée ici pour des raisons historiques.


Ne fais pas ça. Sérieusement, non.

Les liens vers les versions principales de jQuery fonctionnent, mais c'est une mauvaise idée - de nouvelles fonctionnalités sont ajoutées et obsolètes à chaque mise à jour décimale. Si vous mettez à jour jQuery automatiquement sans tester COMPLÈTEMENT votre code , vous risquez une surprise inattendue si l'API d'une méthode critique a changé.

Voici ce que vous devriez faire: écrivez votre code en utilisant la dernière version de jQuery. Testez-le, déboguez-le, publiez-le lorsqu'il est prêt pour la production.

Ensuite, lorsqu'une nouvelle version de jQuery est déployée, demandez-vous: Ai-je besoin de cette nouvelle version dans mon code? Par exemple, y a-t-il une compatibilité de navigateur critique qui n'existait pas auparavant, ou va-t-elle accélérer mon code dans la plupart des navigateurs?

Si la réponse est "non", ne vous souciez pas de mettre à jour votre code avec la dernière version de jQuery. Cela pourrait même ajouter de NOUVELLES erreurs à votre code qui n'existaient pas auparavant . Aucun développeur responsable n'inclurait automatiquement le nouveau code d'un autre site sans le tester minutieusement.

Il n'y a tout simplement aucune bonne raison d'utiliser TOUJOURS la dernière version de jQuery. Les anciennes versions sont toujours disponibles sur les CDN, et si elles fonctionnent pour vos besoins, pourquoi se donner la peine de les remplacer?


Un problème secondaire, mais peut-être plus important, est la mise en cache. De nombreuses personnes établissent un lien vers jQuery sur un CDN, car de nombreux autres sites le font et vos utilisateurs ont de bonnes chances d'avoir cette version déjà mise en cache.

Le problème est que la mise en cache ne fonctionne que si vous fournissez un numéro de version complet . Si vous fournissez un numéro de version partiel, la mise en cache dans un avenir lointain ne se produit pas - car si c'était le cas, certains utilisateurs obtiendraient différentes versions mineures de jQuery à partir de la même URL. (Supposons que le lien vers 1.7 pointe vers 1.7.1 un jour et 1.7.2 le lendemain. Comment le navigateur s'assurera-t-il qu'il obtient la dernière version aujourd'hui? Réponse: pas de mise en cache.)

En fait, voici une ventilation de plusieurs options et de leurs paramètres d'expiration ...

http://code.jquery.com/jquery-latest.min.js (pas de cache)

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js (1 heure)

http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js (1 heure)

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js (1 an)

Ainsi, en créant un lien vers jQuery de cette manière, vous éliminez en premier lieu l'une des principales raisons d'utiliser un CDN.


http://code.jquery.com/jquery-latest.min.js peut ne pas toujours vous donner la version que vous attendez, non plus. Au moment d'écrire ces lignes, il renvoie à la dernière version de jQuery 1.x, même si jQuery 2.x a également été publié. En effet, jQuery 1.x est compatible avec les anciens navigateurs, y compris IE 6/7/8, et jQuery 2.x ne l'est pas . Si vous voulez la dernière version de jQuery 2.x, alors (pour l'instant) vous devez le spécifier explicitement.

Les deux versions ont la même API, il n'y a donc pas de différence de perception pour les navigateurs compatibles. Cependant, jQuery 1.x est un téléchargement plus volumineux que 2.x.

Blazemonger
la source
Merci pour votre point de vue, mais dans mon cas, il vaut mieux utiliser la dernière version. cependant, je suis partiellement d'accord avec votre opinion, mais certaines nouvelles versions corrigent également d'anciens bogues. De plus, la dernière version a plus de chances d'être en cache, c'est l'un des avantages du cdn.
Martin Borthiry le
2
un bon exemple de ce qui se produit est le développement dans n'importe quel jquery <1.4 puis la mise à niveau au-delà de la 1.4. Il y a eu des changements dans l'accès aux propriétés et la façon dont les requêtes ajax géraient les données JSON dans le rappel.
scrappedcola le
juste pour clarifier ... Je demandais une seule page qui utilise une partie triviale de jquery ... Je comprends votre bon point, mais je veux juste savoir si Google propose une URL pour obtenir la dernière version.
Martin Borthiry le
4
@scrappedcola - jQuery 1.9 a également introduit de nombreux changements de rupture. J'ai rencontré beaucoup de bogues au fil des ans en raison de problèmes de compatibilité descendante dans jQuery. Et je suis tout à fait d'accord avec les conseils de Blazemonger. Vous ne devez en aucun cas pointer simplement vers l'URL "dernière jQuery". Vous seriez à la merci de l'équipe jQuery, et une nouvelle version de jQuery pourrait facilement casser votre site. Non seulement cela pourrait arriver, mais cela arrivera probablement à un moment donné.
Steve Wortham
agréable d'apprendre que la mise en cache est basée sur le niveau de détail de la version!
Tadas V.
8

Je ne sais pas si / où il est publié, mais vous pouvez obtenir la dernière version en omettant les numéros mineurs et de construction.

Dernière version 1.8.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

Dernière 1.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Cependant, gardez à l'esprit que ces liens ont un délai d'expiration de cache beaucoup plus court qu'avec le numéro de version complet, de sorte que vos utilisateurs peuvent les télécharger plus que vous ne le souhaitez. Voir Les références cruciales .0 dans Google CDN à jQuery 1.x.0 pour plus d'informations.

jrummell
la source
1
Vous pouvez également obtenir la dernière version de code.jquery.com/jquery.min.js, elle est généralement mise à jour quelques jours avant les autres cdns
Kevin B
Bien que vous puissiez extraire la dernière version 1.8.x de cette façon, vous ne pouvez pas extraire la dernière version 1.9 ou un numéro de version mineur avec des liens similaires. De plus, le lien "dernier 1.x" pointe actuellement vers 1.11.1 alors que le dernier est en fait 1.11.3.
Blazemonger
@Blazemonger C'est exact. Cela a changé après avoir répondu à cela. Vous avez une bonne explication dans votre mise à jour!
jrummell
8

Si vous souhaitez utiliser jQuery CDN autre que la bibliothèque jQuery hébergée par Google, vous pouvez envisager de l'utiliser et vous assurer d' utiliser la dernière version de jQuery:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
Abdul Munim
la source
Cela a entraîné 1,9.1 au lieu de 2.0
Phillip Senn
3
v2.x n'est pas compatible avec v1.x. Tout site qui pointe vers cette URL va en fait bousiller les sites s'il était mis à jour vers la v2
Abdul Munim
Ce lien ne
propose
2

Pour utiliser la dernière version de jquery hébergée par Google

Humains:

  1. https://developers.google.com/speed/libraries/#jquery

  2. Obtenez l'extrait:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  1. Mettez-le dans votre code.
  2. Assurez-vous que cela fonctionne.

Bots:

  1. Attendez qu'un humain le fasse.
Bob Stein
la source