88 votes

Avantages et inconvénients de l'hébergement local de jQuery

Nous tirons actuellement les bibliothèques jQuery et jQueryUI (et jQueryUI CSS) du CDN de Google. J'aime cela car je peux appeler google.load("jquery", "1");
et la dernière version de jQuery 1.x.x sera utilisée.

Maintenant, je dois retirer les bibliothèques locales pour des raisons de sécurité.

Je suis heureux de les tirer localement, mais je me demande quels sont les autres avantages et les pièges auxquels il faut faire attention ?

6 votes

De quels problèmes de sécurité parlons-nous ?

0 votes

Je n'ai pas demandé. Je suppose que ce n'est pas tant la sécurité que le fait d'essayer de contrôler la bande passante en mettant un pare-feu à gmail, etc.

150voto

revaxarts Points 2391

J'utilise toujours le CDN (Content Delivery Network) de Google. Mais juste au cas où il serait hors ligne :

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>

Récupérer le jQuery de Google CDN et revenir au local si nécessaire.

Modifier : Si vous n'avez pas besoin de supporter IE6 et que votre site a une utilisation partielle de https, vous pouvez également supprimer le http :

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

4 votes

Crédit à la communauté : stackoverflow.com/questions/1014203/

28 votes

XVIDEOS utilise cette solution maintenant :P

0 votes

Je dois manquer quelque chose ici... Cette approche ne suppose-t-elle pas que le jQuery chargé sur le CDN sera chargé et interprété avant la ligne suivante ( !window.jQuery... ) est interprété ? <script> sont traitées de manière asynchrone, n'est-ce pas ?

112voto

Daniel Dyson Points 9913

Le principal avantage de les avoir sur un CDN est que les fichiers peuvent être téléchargés parallèlement aux fichiers téléchargés depuis votre propre site web. Cela réduit la latence sur chaque page. L'inconvénient de l'hébergement local est donc le revers de la médaille. augmentation de la latence . La principale raison en est que les navigateurs sont limités dans le nombre de connexions qu'ils peuvent établir en même temps avec le même domaine web. Dans IE6, la valeur par défaut était de 2 connexions simultanées au même domaine. partagé entre toutes les fenêtres ouvertes de l'IE ! Dans IE8+, la situation s'est améliorée et la valeur par défaut est de 6, ce qui est conforme à FF/Chrome, mais si vous avez beaucoup d'images et que vous n'utilisez pas de sprites, vous subirez une forte latence.

En utilisant un CDN, je voudrais toujours définir explicitement la version de la bibliothèque plutôt que de prendre la dernière version. Cela réduit le risque que les nouvelles versions cassent votre code. Peu probable avec jQuery, mais possible.

L'autre avantage principal de l'utilisation d'un CDN est une réduction du trafic sur votre site . Si vous payez par Go ou si vous êtes sur un serveur virtuel aux ressources limitées, vous pouvez constater que les performances globales de votre site augmentent et que les coûts d'hébergement diminuent lorsque vous confiez une partie de votre contenu à un CDN public.

Assurez-vous de lire également l'autre réponse à cette question par @Xaver. C'est une très bonne astuce

5 votes

Un autre avantage de définir explicitement la version de la bibliothèque est que google lui donne un temps de cache plus long. Par exemple, spécifier 1.9.1 donnera une durée de vie de cache plus longue que de demander simplement 1.9 (car une nouvelle version de jQuery 1.9 pourrait être publiée mais 1.9.1 sera toujours la même).

0 votes

Uhhh - revaxarts ? Je ne vois aucune réponse de ce type, ni actuelle ni supprimée. Quel est le "très bon truc" ?

26voto

bobince Points 270740

D'autres ont parlé des avantages. Les pièges :

  • Si vous n'incluez que le contenu de votre propre serveur, c'est un seul serveur qui doit fonctionner - et ne pas être bloqué par des pare-feu, etc. pour que votre site fonctionne. Tirez le script d'un tiers et maintenant c'est deux serveurs qui doivent être en marche et débloqués pour que votre site fonctionne.

  • N'importe quel site que vous tirez <script> à partir duquel vous pouvez contrôler complètement l'expérience de l'utilisateur sur votre site. Si Google se sentait mal, il pourrait mettre quelque chose dans sa copie de jQuery pour enregistrer vos frappes au clavier, voler des informations personnelles de la page sur laquelle vous vous trouvez pour les intégrer à sa base de données de suivi Web, vous faire poster des commentaires "J'aime Google !" sur chaque formulaire, etc.

Google ne le fera probablement pas, mais c'est un facteur qui échappe à votre contrôle et dont il faut certainement se préoccuper avec les autres services d'hébergement de script. Il y a déjà eu des incidents où des scripts de statistiques ont été compromis par des chargeurs de logiciels malveillants.

Avant d'inclure un script d'un tiers - même sur une seule page de votre site - vous devez lui faire confiance à 100 % pour toutes les fonctionnalités accessibles aux utilisateurs et visibles sur ce nom d'hôte (y compris les fonctions d'administration en ligne).

24 votes

Google ne ferait pas ça... J'AIME GOOGLE... n'est-ce pas ? :-p

1 votes

Excellents points concernant les questions de sécurité.

6 votes

15voto

Moin Zaman Points 15424

Google CDN :

  • mise en cache, bonne pour les performances, plus d'utilisateurs sont susceptibles de l'avoir déjà, et le téléchargement se fait en parallèle.
  • Si jamais, à Dieu ne plaise, le CND tombe, vous êtes foutus.
  • si une nouvelle version casse vos plugins existants ou votre site, vous le saurez peut-être trop tard.

Localement :

  • le développement sans être connecté au réseau est possible
  • peut encore obtenir des avantages en termes de performances en utilisant le gzippage, en plus de la réduction de la taille des fichiers.

5 votes

Cependant, le jquery que vous chargez depuis le cdn de google est minifié. Un autre avantage à utiliser un cdn est qu'il est plus propre pour la structure de votre répertoire :)

0 votes

if a new version breaks your existing plugins or site, you'll know about it possibly too late vous pouvez spécifier la version dans le lien CDN, pour éviter cela.

9voto

Praveen Prasad Points 13137

Avantages : (Spécifiquement pour le CDN de Google)

  1. Téléchargements en parallèle avec vos fichiers. D'autres réponses abordent ce sujet de manière plus approfondie
  2. Les serveurs de Google sont susceptibles d'être en mesure de diffuser physiquement le contenu plus rapidement.
  3. Les bibliothèques et les cadres communs peuvent déjà se trouver sur la machine de l'utilisateur, car le cache HTTP d'un CDN est universel sur tous les sites
  4. Votre bande passante n'aurait pas à être utilisée pour servir des fichiers de bibliothèque volumineux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X