Avantages vs Pitfalls d'héberger jQuery localement

Nous tirons actuellement les bibliothèques jQuery et jQueryUI (et jQueryUI CSS) du CDN de google. J'aime cela parce que je peux appeler google.load("jquery", "1");
Et le dernier jQuery 1.xx sera utilisé.

Maintenant, je dois tirer les bibliothèques localement en raison de la sécurité.

Je suis heureux de les attirer localement, mais je me demande quels sont les autres avantages et les pièges à surveiller?

    Le principal avantage de les avoir sur un CDN est que les fichiers peuvent être téléchargés en parallèle aux fichiers téléchargés depuis votre propre site. Cela réduit la latence sur chaque page. Donc, le revers de cette situation est un piège d'hébergement localement – latence accrue . La principale raison en est que les navigateurs sont limités dans le nombre de connexions qu'ils peuvent faire en même temps sur le même domaine web. Dans IE6, cela a été défini en 2 connexions simultanées dans le même domaine – partagé entre toutes les fenêtres ouvertes d'IE !! Dans IE8 +, il a amélioré, en supposant 6, qui est en ligne avec FF / Chrome, mais encore, si vous avez beaucoup d'images et que vous n'utilisez pas les sprites, vous ressentirez une forte latence.

    À l'aide d'un CDN, je définirais toujours la version de la bibliothèque explicitement plutôt que d'en obtenir la dernière. Cela réduit le risque que de nouvelles versions rompent votre code. Pas très probable avec jQuery, mais possible.

    L'autre avantage principal de l'utilisation d'un CDN est la réduction du trafic sur votre site . Si vous payez par GB ou que vous êtes sur un serveur virtuel avec des ressources limitées, vous pourriez constater que les performances globales du site augmentent et que les coûts d'hébergement sont abaissés lorsque vous réduisez votre contenu à un CDN public.

    Assurez-vous de lire également l'autre réponse à cette question par @revaxarts. C'est un très bon truc

    J'utilise toujours le CDN de Google. Mais 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> 

    Prenez le jQuery de Google CDN et reculez au local si nécessaire

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

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

    D'autres ont couvert les avantages. Pièges:

    • Si vous n'incluez que le contenu de votre propre serveur, il s'agit d'un seul serveur qui doit être exécuté et non bloqué par les pare-feu, etc., pour que votre site fonctionne. Retirez le script d'un tiers et maintenant ce sont deux serveurs qui doivent être exécutés et débloqués pour que votre site fonctionne.

    • Tout site que vous tirez <script> peut contrôler complètement l'expérience de l'utilisateur sur votre site. Si Google se sentait mal, ils pouvaient mettre quelque chose dans leur copie de jQuery pour enregistrer vos commandes de clé, voler des informations personnelles à partir de la page sur laquelle vous vous trouvez dans votre base de données de suivi Web, vous faire poster des commentaires "J'adore Google!" À tous les formulaires. , etc.

    Google ne va probablement pas faire cela, mais c'est un facteur qui échappe à votre contrôle, et certainement quelque chose à craindre avec d'autres services d'hébergement de scripts. Il y a eu des incidents avant où les scripts de stats ont été compromis avec des chargeurs de logiciels malveillants.

    Avant d'inclure tout script provenant d'un tiers – même sur une seule page de votre site – vous devez 100% leur faire confiance avec toutes les fonctionnalités accessibles par l'utilisateur visibles sur ce nom d'hôte (y compris les fonctions d'administration face au web).

    Google CDN:

    • Mise en cache, bonne performance, plus d'utilisateurs susceptibles de l'avoir déjà, et il télécharge en parallèle
    • Si jamais, Heaver interdit cdn diminue. t'es foutu.
    • Si une nouvelle version rompt vos plugins ou votre site existant, vous le saurez peut-être trop tard

    Localement:

    • Le développement sans être connecté au réseau est possible
    • Peut encore obtenir des avantages pour la performance grâce au gzipping, en plus de la minification

    Je préfère utiliser ma version locale, car je n'ai pas le contrôle de ce qu'elles fourniront. Par exemple, je ne veux pas que mes utilisateurs soient affectés par Google Analytics ou quelque chose de similaire, car il s'agit d'un problème juridique dans mon pays.

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

    1. Téléchargements en parallèle avec vos fichiers. D'autres réponses répondent plus loin
    2. Les serveurs de Google sont susceptibles de pouvoir livrer physiquement le contenu plus rapidement
    3. Les bibliothèques et cadres communs peuvent déjà être sur la machine de l'utilisateur, car le cache HTTP d'un CDN est universel sur tous les sites
    4. Votre bande passante ne devrait pas aller vers un grand fichier de bibliothèque

    Presque toutes les façons dont vous l'examinez, l'utilisation du CDN de Google est une bonne chose.

    Les performances seront améliorées (bien que légèrement, à moins que votre site ne soit vraiment occupé), et la quantité de données que vos serveurs doivent transmettre diminue (bien que jQuery ne soit pas une chose massive à télécharger), etc.

    La seule raison pour laquelle vous ne voudriez pas l'utiliser, c'est si vous ne faites pas confiance à Google. En l'utilisant, vous êtes en train de donner à Google une fenêtre d'information supplémentaire dans le profil de trafic de votre site, y compris la connaissance des URL que vous ne voudrez peut-être pas publier (par exemple, les zones sécurisées de votre site).

    Si vous êtes paranoïaque à propos de la sécurité, cela pourrait être suffisant pour vous convaincre de ne pas les utiliser (après tout, l'hébergement vous-même ne va pas ralentir votre site), mais en général, la plupart des gens prennent la vue pragmatique Que Google connaît assez de leur site déjà que l'ajout de ceci ne fera pas beaucoup de différence.

    Pour moi, cela dépend vraiment de la quantité de contrôle que vous désirez avoir. Si vous êtes comme moi et que vous devez développer sur l'hôte local lorsque vous travaillez et voyager. Avoir les fichiers jquery local est mieux que de l'avoir hébergé sur Google ou ailleurs.