Cela peut être évident pour certains, mais je me suis demandé: pourquoi devrais-je dépendre du serveur de Google pour héberger jQuery pour mon site?
Est-ce uniquement parce qu'il se charge plus rapidement de cette façon?
Cela peut être évident pour certains, mais je me suis demandé: pourquoi devrais-je dépendre du serveur de Google pour héberger jQuery pour mon site?
Est-ce uniquement parce qu'il se charge plus rapidement de cette façon?
Réponses:
Ceci est dû au fait:
Il existe plusieurs scénarios dans lesquels vous ne voudrez peut- être pas utiliser jQuery à partir du CDN de Google:
Lorsque vous créez une application intranet dans laquelle le serveur Web est hébergé sur le même réseau que les clients. Si vous utilisez le CDN jQuery de Google, vous effectuerez un appel vers Internet plutôt que vers un serveur Web sur le réseau local. Cela augmente la bande passante de votre organisation et est plus lent.
Lorsque vous souhaitez exécuter votre application hors ligne . (Tout à fait lié au premier numéro) Si vous avez besoin de travailler sur un environnement de développement (géré par exemple avec Bower ), vous devrez peut-être pouvoir faire fonctionner votre application sans aucune connexion Internet (c'est-à-dire: dans un train :)
Lorsque vous avez besoin de le personnaliser . Par exemple, si vous utilisez Grunt pour construire la bibliothèque afin de n'utiliser que certains modules ou définir le nom AMD
Lorsque vous diffusez des pages via SSL qui nécessitent jQuery. Vous devez servir le JavaScript sur SSL ainsi que votre page pour éviter les problèmes de sécurité et les avertissements.
De plus, Microsoft héberge jQuery sur leur CDN. C'est un autre choix comparable à l'utilisation de jQuery hébergé par Google.
src="//ajax.googleapis.com/..."
, fonctionnent.
Cette étude de TJ VanToll m'a convaincu qu'il est préférable de concaténer jQuery avec d'autres scripts plutôt que de le charger à partir d'un CDN.
La raison est la latence impliquée dans la récupération de jQuery sur les appareils mobiles:
«En 2012, le temps RTT moyen sur un réseau mobile aux États-Unis était de 344 ms. Et ces 344 ms s'appliquent non seulement à toutes les requêtes HTTP - dont la page Web moyenne en fait désormais 93 - mais également à chaque recherche DNS et connexion TCP ... Alors que les RTT moyens s'améliorent, il n'y a que de petits gains supplémentaires à réaliser, car les réseaux actuels se situent dans un petit facteur de la limite théorique dictée par la physique. "
Il cite également cet article de Steve Souders qui montre pourquoi il est peu probable que vous tiriez parti de la mise en cache en utilisant 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 hit de cache CDN sont extrêmement faibles - et le téléchargement à partir d'un domaine externe a le potentiel d'exécuter non pas un, mais trois aller-retour (une recherche DNS, une connexion TCP et un HTTP GET). "
Le plus grand avantage est la mise en cache. La théorie est que si un visiteur visitait un site qui chargeait ses bibliothèques JavaScript, disons jQuery par exemple à partir du CDN de Google, alors lorsqu'il visite votre site Web, la bibliothèque est déjà dans le cache du navigateur de cet utilisateur et n'aura pas à être téléchargée à nouveau. . Cela sonne bien en théorie.
Les bénéfices partagés ici et ailleurs sont tous théoriques. Je viens de tomber sur une analyse approfondie de l'utilisation d'un CDN et s'il offre les avantages attendus en termes de performances. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
Une raison majeure de NE PAS laisser Google héberger votre jQuery, une raison à laquelle beaucoup de gens ne pensent pas, est qu'il ne se téléchargera pas si vous êtes en Chine. Il est bloqué avec de nombreux autres scripts, polices, etc. hébergés par Google CDN. Si vous avez besoin d'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 ici à "Pourquoi tu devrais ..." et "Pourquoi tu ne devrais pas ..."
Je souhaite simplement ajouter une liste d'alternatives à 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 / application.
En utilisant le CDN avec un Service Worker, vous pouvez télécharger le CDN une fois dans la vie du client, et pas à chaque fois que vous mettez à jour votre code.