Après avoir lu une autre question sur JQuery et les CDN, est-il possible que des outils comme JQuery "viennent avec" le navigateur, réduisant / éliminant ainsi la nécessité du premier téléchargement à partir d'un CDN ou de votre propre serveur hôte.
Les fichiers JQuery en particulier sont assez petits, vous pouvez donc facilement avoir un certain nombre (toutes?) Des différentes versions dans le cadre d'une installation de navigateur. Maintenant assez juste, cela augmenterait l'empreinte d'installation, le temps de téléchargement pour le navigateur lui-même.
Ensuite, les sites pourraient d'abord vérifier «local», avant CDN (qui met ensuite en cache), avant de finalement se transférer par défaut à partir du serveur du site Web lui-même.
Si cela est faisable, a-t-il été fait et sinon, pourquoi ne l'a-t-il pas été?
Array.prototype.forEach
,Array.prototype.indexOf
,Object.create
Sont tous des exemples de code qui a obtenu dans le moteur empaquetés JavaScript lui - même.Réponses:
Il n'y a aucune raison technologique pour laquelle ils ne pourraient pas. Cependant, ce n'est pas nécessaire et c'est contraire à la philosophie fondamentale du Web. Ce n'est pas nécessaire, car vous pouvez obtenir presque la même chose avec un en-tête expirant dans un avenir lointain. C'est contraire à la philosophie du Web, car il y a une autorité centralisée descendante sur laquelle les bibliothèques devraient / ne devraient pas être regroupées avec le navigateur.
Edit: les bibliothèques JS sont là, principalement, pour faciliter le traitement du DOM. Je ne pense pas que le regroupement de bibliothèques tierces avec le navigateur soit la bonne façon de rendre l'API DOM plus agréable.
la source
En fait, ce que vous décrivez existe déjà depuis des années. Cela s'appelle la mise en cache . Et il est disponible non seulement pour JQuery, mais pour tout ce que votre navigateur peut télécharger.
C'est exactement ce que fait chaque navigateur. Il vérifie d'abord le cache local, puis en télécharge un à partir du CDN si nécessaire. Avec une configuration de cache appropriée, il n'y a même pas de trajet aller-retour vers le serveur (pour vérifier la version la plus récente) pendant des mois.
Inclure JQuery dans la configuration du navigateur:
Ajoutez une complexité inutile à l'application et à la configuration du navigateur,
Ajoutez une complexité inutile au processus de mise à jour,
Augmentez le nombre de mises à jour afin de garder la version à jour de JQuery, même pour les personnes qui n'en ont pas besoin,
Ajouter la confusion: pourquoi JQuery et non Prototype, ou un autre framework, image, fichier CSS, etc.?
etc.
Augmenter la complexité d'un produit logiciel sans aucun avantage en termes de fonctionnalités, de performances, etc. est une très mauvaise idée.
la source
N'oubliez pas que jQuery est une bibliothèque js, elle semble être devenue de facto et considérée comme une panacée (au point de devenir mémorable sur SO), mais ce n'est qu'une bibliothèque js.
Tout ce qui est standardisé pour les scripts (EMCAScript) est déjà inclus dans le navigateur, tout autre élément ajouté à d'autres navigateurs deviendrait non standard et vous vous retrouveriez avec les problèmes de cross-browser pour les navigateurs non standard (comme le modèle d'événement IE ) qui influencent en partie la raison pour laquelle des bibliothèques comme jQuery ont été créées en premier lieu.
Réponse courte: ils pourraient être inclus, mais ils ne devraient pas.
la source
La mise en cache du navigateur fournit quelque chose de très similaire à ce dont vous parlez. Il devrait être le cas que jQuery ou toute autre bibliothèque JS soit téléchargée une fois puis récupérée à partir du cache sur d'autres demandes.
Bien que jQuery soit la bibliothèque JavaScript la plus omniprésente, elle n'est pas la seule et il me semble que d'en faire un composant installé du navigateur serait mauvais pour l'écosystème JS. La concurrence est saine et mène généralement à l'innovation, et nous, développeurs et utilisateurs de logiciels, ne serions pas bien servis en donnant à jQuery une position spéciale.
Une fois que vous prenez en compte la mise en cache, l'avantage que vous gagnez est très, très minime. La version minifiée de jQuery n'est que de 31 Ko. Ce n'est pas une raison pour changer quoi que ce soit .
la source