web-dev-qa-db-fra.com

Quelles sont les différences entre les paquets normal et mince de jquery?

À CDNJS , le package jquery.slim est placé. Il a une taille plus petite. Quelles sont les principales différences par rapport à un original? Un rapide coup d'œil au code n'a pas apporté de réponse, et sur le site jquery.com, je n'ai trouvé aucune référence à propos du paquet slim.

Alors, quelles sont les différences entre jquery.js et jquery.slim.js?

385
SynCap

En regardant le code, j'ai trouvé les différences suivantes entre jquery.js et jquery.slim.js:

Dans jquery.slim.js, les fonctionnalités suivantes sont supprimées:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each // Attache un tas de fonctions pour gérer les événements communs AJAX
  4. jQuery.expr.filters.animated
  5. paramètres ajax tels que jQuery.ajaxSettings.xhr, jQuery.ajaxPrefilter, jQuery.ajaxSetup, jQuery.ajaxPrefilter, jQuery.ajaxTransport, jQuery.ajaxSetup
  6. l'analyse xml comme jQuery.parseXML,
  7. effets d'animation comme jQuery.easing, jQuery.Animation, jQuery.speed
272
Bhojendra Rauniyar

La réponse courte tirée de la annonce de la version finale de jQuery 3. :

Outre la version régulière de jQuery, qui inclut les modules ajax et effets, nous publions une version "mince" qui exclut ces modules. Globalement, il exclut ajax, les effets et le code actuellement obsolète.

La taille du fichier (gzipped) est environ 6k plus petite, 23.6k vs 30k.

294
Jannie Theunissen

À ce stade, la réponse la plus fiable semble être celle-ci numéro , qui indique "il s'agit d'une version personnalisée de jQuery qui exclut les effets, le code ajax et le code obsolète". Les détails seront annoncés avec jQuery 3.0.

Je soupçonne que l’exclusion de ces composants de la bibliothèque jQuery est justifiée par la reconnaissance du scénario de plus en plus courant d’utilisation de jQuery en conjonction avec un autre framework JS tel que Angular ou React. Dans ces cas, jQuery est principalement utilisé pour la traversée et la manipulation du DOM. Par conséquent, le fait de supprimer les composants obsolètes ou fournis par la structure permet une réduction de 20% de la taille du fichier.

38
gxclarke

Le blog jQuery, jQuery 3.1.1 est sorti! , dit,

Slim build

Parfois, vous n'avez pas besoin d'ajax, ou vous préférez utiliser l'une des nombreuses bibliothèques autonomes qui se concentrent sur les requêtes ajax. Et souvent, il est plus simple d’utiliser une combinaison de CSS et de manipulation de classe pour toutes vos animations Web. Outre la version standard de jQuery, qui inclut les modules ajax et effets, nous avons publié une version "mince" qui exclut ces modules. Globalement, il exclut ajax, les effets et le code actuellement obsolète. La taille de jQuery est très rarement une préoccupation de performances de chargement de nos jours, mais la construction mince est environ 6k octets compressés plus petit que la version normale - 23.6k vs 30k.

23
ChrisW

Je pouvais voir que $.ajax est supprimé de jQuery slim 3.2.1

Ci-dessous, le commentaire de la version slim avec les fonctionnalités supprimées

/*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
13
kiranvj

Comme indiqué précédemment, les modules Ajax et effets ont été exclus de jQuery slim. La différence de taille à partir de la version 3.3.1 pour la version agrandie décompressée est de 85k vs 69k (économie de 16k pour slim) ou 30vs24 pour zippée, il est important de noter que bootstrap 4 utilise le slim jQuery donc si quelqu'un veut la version complète, il doit l'appeler à la place

5
Yehuda Schwartz