web-dev-qa-db-fra.com

Bibliothèque hébergée sur Google jQuery - est-ce utile?

L’utilisation de la bibliothèque hébergée dans Google jQuery présente-t-elle des avantages véritablement palpables? Ou devons-nous simplement le télécharger sur notre serveur?

Quelles sont vos opinions a ce sujet?

14
Leo

L'utilisation d'un CDN externe tel que Google pour héberger jQuery présente deux avantages majeurs:

  1. C'est plus rapide. Ce sera certainement plus rapide que votre site et probablement plus rapidement que n'importe quel CDN que vous avez configuré vous-même.
  2. Il peut déjà être mis en cache . De nombreux sites font également référence à jQuery sur le CDN de Google. Par conséquent, s’ils visitaient un autre site avec celui-ci avant le vôtre, ils n’auraient même pas besoin de le télécharger.

Inconvénients potentiels:

  1. Le domaine peut être bloqué (c'est assez courant dans des pays comme la Chine). Vous pouvez résoudre ce problème en ayant un repli local ( voir ici pour savoir comment ).
  2. La fragmentation des numéros de version est assez élevée, de sorte que les visiteurs de votre site peuvent avoir de nombreuses versions mises en cache, mais pas celle que vous avez référencée ( voir ici pour quelques statistiques récentes ). Ce problème ne concerne toutefois que le chargement de la première page.
18
DisgruntledGoat

Un autre inconvénient:

L'utilisation d'un CDN permet à l'opérateur du CDN de suivre les visiteurs des sites. C'est pourquoi ils ne coûtent pas d'argent.

11
Jost

L'utilisation de CDN (s) pour partager vos dépendances sur de nombreux serveurs comme celui-ci représente essentiellement un compromis entre bande passante et latence, en supposant que vous ne vous préoccupiez que des performances.

Je suppose d'ailleurs que l'alternative n'est pas simplement de l'héberger localement, mais de la concaténer avec une demande locale différente - il n'y a généralement aucune bonne raison de ne pas concaténer quand vous le pouvez.

Si la bande passante est infinie, mieux vaut ne PAS partager, car vous serez aussi lent que votre service le plus lent - car les latences ne sont pas parfaitement prévisibles, avec suffisamment de services, même s'ils sont rapides, vous n'avez besoin que d'un bit de malchance pour provoquer un lent chargement de la page.

Si la latence est égale à 0, répartir votre charge sur de nombreux serveurs peut améliorer la bande passante en utilisant plusieurs serveurs (ce n'est pas très utile car les limites de bande passante sont probablement proches des clients, pas des serveurs), mais surtout, cela peut réduire la quantité de données transmises. légèrement en augmentant l'efficacité de la mise en cache.

Cela dépend de votre scénario, mais je m'attendrais généralement à ce que la latence soit plus un problème que la bande passante, à moins que vos scripts ne soient incroyablement énormes (ce que jQuery ne fait pas). À ce stade, il est généralement plus rapide d’héberger jQuery dans le cadre d’un fichier local concaténé.

Les raisons pour ne pas héberger localement sont, par exemple, lorsque vous payez pour la bande passante, ou que vous hébergez sur un serveur lent (votre connexion au client est goulot d’étranglement de votre côté, pas celle du client), ou que vous savez que vos clients auront une très faible bande passante (DSL ou modems bas de gamme) , par exemple, mobile a tendance à avoir plus de problèmes de latence que de bande passante), ou vos clients paient pour la bande passante (par exemple, mobile) et les scripts sont une partie si remarquable de ce que la mise en cache mineure gagne (peu probable).

Dans tous les cas: il sera beaucoup plus pertinent de savoir si vous avez d'abord couvert les bases; en-têtes de mise en cache appropriés, concaténation, minification et gzipping (de préférence avec un taux de compression élevé). Et voici le point crucial: si vous ne faites pas , alors au moins le CDN le fera, alors c'est gagnant ...

TL; DR: Si vous avez concaténation + minification + gzipping + mise en cache de tous les éléments couverts, alors servant de petits scripts localement est plus rapide que d’un CDN malgré les meilleures performances du CDN - mais seulement si vous avez fait vos devoirs, éventuellement pas lors du chargement de la première page, et il existe certainement des exceptions à cette règle.

3
Eamon Nerbonne

L'utilisation de la bibliothèque hébergée par jQuery par Google permet de charger votre page plus rapidement. En effet, la bibliothèque est chargée en même temps que votre page au lieu d’après.

1
Zistoloen