web-dev-qa-db-fra.com

Pourquoi jQuery n'est-il pas installé dans les navigateurs?

J'utilise jQuery sur plusieurs de mes sites Web et bien que j'utilise un CDN pour le servir, cela n'a aucun sens de permettre à un visiteur de télécharger jQuery à chaque fois. jQuery doit être le framework JavaScript le plus utilisé au monde. Ne serait-il pas plus logique que les navigateurs l'installent par défaut?

Ainsi, des millions de fois par jour, un téléchargement de jQuery pourrait être évité. Soit des sites Web des personnes ou des CDN.

Tout ce qui serait vraiment nécessaire est une sorte de déclaration if comme:

 <!--[if jQuery gt 11]>

Existe-t-il quelque chose qui m'aide à empêcher les utilisateurs de se rendre au CDN s'ils ont déjà jQuery dans leur cache à partir d'un autre site?

19
user1914292

Si vous servez jQuery à partir d'un CDN populaire tel que bibliothèques hébergées ou cdnjs de Google, il ne sera pas téléchargé à nouveau si votre visiteur a été sur un site qui l'a référencé depuis le même source (tant que la version en cache n'a pas expiré).

comme vous le dites, jQuery est une bibliothèque populaire, mais son regroupement avec le navigateur n’est pas susceptible de se produire pour plusieurs raisons:

  1. jQuery est relativement petit (comparé aux bibliothèques parfois regroupées dans des navigateurs, comme Flash). Les goulots d'étranglement les plus importants en termes de performances sur un site moyen sont probablement imputables au téléchargement de jQuery.
  2. Les améliorations apportées à JavaScript/ECMAScript signifient que les développeurs ne sont de plus en plus tenus de dépendre de jQuery. (Voir youmightnotneedjquery.com .)
  3. Il existe de nombreuses autres bibliothèques JavaScript populaires. Les navigateurs ne sont pas conçus comme des référentiels pour le code JavaScript. Il peut être préférable de laisser les développeurs Web de sites individuels suivre la popularité des scripts, supprimer les bibliothèques moins populaires et tout mettre à jour.
55
Nick

Non seulement jQuery n'est pas la seule bibliothèque JS populaire, mais un navigateur devrait potentiellement inclure plusieurs versions. Le Google CDN répertorie actuellement: 42 versions de jQuery; 44 versions de jQuery UI; 6 versions de jQuery Mobile.

Il est préférable de permettre aux développeurs Web de définir la version d'une bibliothèque à télécharger en fonction des exigences de leur site Web. Si vous utilisez une version de production actuelle de jQuery sur votre site Web et que la chargez à partir d'un CDN plus populaire, il est fort probable que vos visiteurs l'auront déjà mise en cache de toute façon.

21
Andrew Lott

Le navigateur est le moteur. Le concepteur du moteur n'a pas à déterminer le type de carburant et les pièces supplémentaires que vous allez mettre dans votre voiture et à l'inclure pour vous. S'ils le feraient, les navigateurs seraient un énorme bloatware car la prochaine question serait "pourquoi juste jQuery?", Et nous finirions par maintenir des référentiels de dépendances.

Aussi, allons-nous inclure toutes les versions? Et si quelqu'un souhaitait utiliser une version personnalisée? Et si quelqu'un ne voulait pas utiliser cette bibliothèque? À quelle fréquence vont-ils fusionner et lancer les dernières versions? Allons-nous nous retrouver avec différents navigateurs avec différents jQuerys versionnés? Ils ne peuvent même pas implémenter les mêmes fonctionnalités HTML, CSS et JavaScript normalisées. Que se passe-t-il si l'un des mainteneurs de navigateur n'inclut pas de bibliothèque ni sa version spécifique?

Les navigateurs fournissent des blocs de construction et un environnement pour vous permettre de ne pas créer une solution déjà terminée.

Mettre jQuery dans le navigateur ne va pas rendre le chargement de votre site extrêmement rapide, car de nos jours ce n’est pas le plus gros goulot bande passante). Il existe de nombreuses autres bibliothèques spécialement conçues pour le chargement rapide et légères, comme Zepto .

Si vous êtes vraiment préoccupé par la taille et l'utilisation de la bande passante de jQuery, ne l'utilisez pas. Avez-vous déjà entendu parler de Vanilla JS? C'est une bibliothèque encore plus populaire qui est utilisée littéralement par presque tout le monde, y compris jQuery! Et cela a déjà réalisé votre rêve car il est inclus dans tous les navigateurs!

14
totymedli

Une raison d'utiliser une bibliothèque telle que jQuery est la compatibilité.

Les navigateurs sont devenus plus compatibles avec les standards, mais en utilisant la bibliothèque jquery, vous vous fournissez vous-même, vous n'avez pas à vous soucier des différences entre les familles de navigateurs et leurs versions.

En fournissant vous-même le jQuery, vous êtes sûr d'avoir une api cohérente.

Si nous avons intégré le jquery dans le navigateur, vous devez vérifier la version de l'utilisateur, et nous revenons dans le navigateur et "Ce site est optimisé pour ..."

Donc, avoir la construction de jquery dans le navigateur n'a pas de sens.

De plus, la mise en cache fonctionne. Ainsi, même si l'utilisateur ne dispose pas déjà de votre version de jquery, celle-ci n'a besoin d'être téléchargée qu'une seule fois.

2
Lenne