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?
Ceci est dû au fait:
Il existe plusieurs scénarios dans lesquels vous pourriez ne pas utiliser utiliser jQuery à partir du CDN de Google:
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.
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 :)
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
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.
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). "
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
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
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.
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.