web-dev-qa-db-fra.com

Pourquoi devrais-je utiliser le CDN de Google pour jQuery?

Cela peut sembler évident à certains, mais je me suis demandé: pourquoi devrais-je compter sur le serveur de Google pour héberger jQuery sur mon site?

Est-ce seulement parce qu'il se charge plus vite de cette façon?

164
Yvette

Ceci est dû au fait:

  1. Il augmente le parallélisme disponible.
    (La plupart des navigateurs ne téléchargeront que 3 ou 4 fichiers à la fois depuis un site donné.)

  2. Il augmente les chances qu'il y ait un hit en cache.
    (Comme de plus en plus de sites suivent cette pratique, plus d'utilisateurs ont déjà le fichier prêt.)

  3. Il garantit que la charge utile sera aussi petite que possible.
    (Google peut pré-compresser le fichier dans un large éventail de formats (tels que GZIP ou DEFLATE). Le temps de téléchargement est donc très réduit, car il est super compressé et il n'est pas compressé à la volée.)

  4. Il réduit la quantité de bande passante utilisée par votre serveur.
    (Google propose essentiellement de la bande passante gratuite.)

  5. Il garantit que l'utilisateur obtiendra une réponse géographiquement proche.
    (Google a des serveurs partout dans le monde, ce qui diminue encore la latence.)

  6. (Facultatif) Ils garderont automatiquement vos scripts à jour.
    (Si vous aimez "voler par le pantalon de votre pantalon", vous pouvez toujours utiliser la version latest de tous les scripts proposés. Ceux-ci pourraient corriger des failles de sécurité, mais en général, casser vos données.)
382
John Gietzen

Il existe plusieurs scénarios dans lesquels vous pourriez ne pas utiliser utiliser jQuery à partir du CDN de Google:

  1. Lorsque vous construisez une application intranet dans laquelle le serveur Web est hébergé sur le même réseau que les clients. Si vous utilisez le fichier jcuery de CDN de Google, vous effectuerez: un appel à Internet plutôt qu’à un serveur Web sur le réseau local. Cela augmente la bande passante pour votre organisation et est plus lent.

  2. Lorsque vous souhaitez exécuter votre application hors connexion . (Assez lié au premier problème) Si vous devez travailler sur un environnement de développement (géré par exemple avec Bower ), vous devrez peut-être faire en sorte que votre application fonctionne sans connexion Internet (c'est-à-dire: dans un train :)

  3. Lorsque vous devez le personnaliser . Par exemple, si vous utilisez Grunt pour construire la bibliothèque afin d’utiliser uniquement certains modules ou en définissant le nom AMD

  4. Lorsque vous servez des pages sur SSL qui requièrent jQuery. Vous devez servir JavaScript sur SSL ainsi que votre page pour éviter les problèmes de sécurité et les avertissements.

En outre, Microsoft héberge jQuery sur leur CDN. C’est un autre choix comparable à l’utilisation de jQuery hébergé par Google.

56
Lance Fisher

This study by TJ VanToll m'a convaincu qu'il était préférable de concaténer jQuery avec d'autres scripts plutôt que de le charger à partir d'un CDN.

La raison en est la latence impliquée dans l'extraction de jQuery sur les périphériques mobiles:

"En 2012, l'heure RTT moyenne sur un réseau mobile aux États-Unis Était de 344 ms. Ces 344 ms s'appliquent non seulement à chaque demande HTTP – Dont la page Web moyenne génère maintenant 93% - mais également à chaque recherche DNS. et TCP connexion ... Alors que les RTT moyens s’améliorent, il ne reste que de petits gains supplémentaires à obtenir, car les réseaux actuels se situent dans un faible facteur de la limite théorique dictée par la physique . "

Il cite également ce message de Steve Souders qui montre pourquoi vous êtes réellement peu susceptible de bénéficier de l'avantage de la mise en cache} de l'utilisation d'un CDN:

"En raison de la fragmentation des fournisseurs de CDN, des versions de jQuery et de l'utilisation du protocole .__ (http vs. https), les chances d'obtenir un cache de CDN Sont incroyablement faibles - et le téléchargement depuis un domaine externe a. possibilité d'effectuer non pas un mais trois allers et retours (une recherche DNS, une connexion une connexion TCP et un HTTP GET). "

28
cantera

Le plus grand avantage est la mise en cache. La théorie est que si un visiteur visite un site qui charge ses bibliothèques JavaScript, disons par exemple jQuery depuis le CDN de Google, puis lorsqu'il visite votre site Web, la bibliothèque est déjà dans le cache du navigateur de cet utilisateur et ne devra plus être téléchargée. . Cela sonne bien en théorie. 

Les avantages partagés ici et ailleurs sont tous théoriques. Je viens de découvrir une analyse approfondie de l’utilisation d’un CDN et de ses avantages attendus en termes de performances . http://www.root777.com/appdev/does-using-google-libraries-api-cdn- donnez-vous-performances-avantages

12
Matt Moor

Une raison majeure pour ne pas laisser Google héberger votre jQuery, une raison à laquelle beaucoup de gens ne pensent pas, est qu'il ne téléchargera pas si vous êtes en Chine. Il est bloqué avec de nombreux autres scripts, polices, etc., hébergé par les CDN de Google. Si vous souhaitez atteindre un public chinois, il est préférable de toujours utiliser une solution de secours hébergée sur votre propre serveur . Google APIS bloqué en Chine

7
Joshua Maddox

Quelques bonnes réponses à "Pourquoi tu devrais ..." et "Pourquoi tu ne devrais pas ..."

Je souhaite simplement ajouter une liste de solutions de rechange à Google si vous souhaitez charger jQuery à partir d'un CDN.

Mais pour résumer, vous améliorez fondamentalement les performances globales de votre site Web/de vos applications.

0
EdwardM

En utilisant CDN avec un agent de service, vous pouvez télécharger le CDN une fois dans la vie du client et pas à chaque fois que vous mettez à jour votre code.

0
Oscar Gardiazabal