official google enlace jquery slim-jquery

google - ¿Cuáles son las diferencias entre el paquete normal y delgado de jquery?



jquery versions (6)

¡El blog jQuery, blog.jquery.com/2016/09/22/jquery-3-1-1-released , dice,

Complexión delgada

A veces no necesita ajax, o prefiere usar una de las muchas bibliotecas independientes que se centran en las solicitudes de ajax. Y a menudo es más simple usar una combinación de CSS y manipulación de clases para todas sus animaciones web. Junto con la versión regular de jQuery que incluye los módulos ajax y de efectos, hemos lanzado una versión "delgada" que excluye estos módulos. En general, excluye ajax, los efectos y el código actualmente en desuso. El tamaño de jQuery rara vez es un problema de rendimiento de carga en estos días, pero la construcción delgada es de aproximadamente 6k bytes comprimidos más pequeños que la versión normal: 23.6k frente a 30k.

En CDNJS coloca el paquete jquery.slim. Tiene un tamaño más pequeño. ¿Cuáles son las principales diferencias con respecto a un original? Un vistazo rápido al código no trajo la respuesta, y en jquery.com no he encontrado ninguna referencia sobre el paquete slim .

Entonces, ¿cuáles son las diferencias entre jquery.js y jquery.slim.js?


Al mirar el código, encontré las siguientes diferencias entre jquery.js y jquery.slim.js:

En jquery.slim.js, se eliminan las siguientes características:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each // Adjunte un montón de funciones para manejar eventos AJAX comunes
  4. jQuery.expr.filters.animated
  5. configuraciones de ajax como jQuery.ajaxSettings.xhr, jQuery.ajaxPrefilter, jQuery.ajaxSetup, jQuery.ajaxPrefilter, jQuery.ajaxTransport, jQuery.ajaxSetup
  6. análisis XML como jQuery.parseXML,
  7. efectos de animación como jQuery.easing, jQuery.Animation, jQuery.speed

Como se señaló, los módulos de efectos y Ajax se han excluido de jQuery slim, la diferencia de tamaño a partir de 3.3.1 para la versión reducida descomprimida es de 85k frente a 69k (ahorro de 16k para slim) o 30vs24 para zip, es importante tener en cuenta que bootstrap 4 utiliza el delgado jQuery, así que si alguien quiere la versión completa, debe llamar a eso


En este momento, la respuesta más autorizada parece estar en este issue , que establece que "es una compilación personalizada de jQuery que excluye efectos, ajax y código obsoleto". Los detalles se anunciarán con jQuery 3.0.

Sospecho que la razón para excluir estos componentes de la biblioteca jQuery es reconocer el escenario cada vez más común de que jQuery se usa junto con otro marco JS como Angular o React. En estos casos, el uso de jQuery es principalmente para atravesar y manipular DOM, por lo que si se omiten aquellos componentes que son obsoletos o que proporciona el marco, se obtiene una reducción de aproximadamente un 20% en el tamaño del archivo.


La breve respuesta tomada del anuncio del lanzamiento final de jQuery 3.0 :

Junto con la versión regular de jQuery que incluye los módulos ajax y de efectos, estamos lanzando una versión "delgada" que excluye estos módulos. En general, excluye ajax, los efectos y el código actualmente en desuso.

El tamaño del archivo (comprimido) es aproximadamente 6k más pequeño, 23.6k vs 30k.


Pude ver que $.ajax se elimina de jQuery slim 3.2.1

A continuación se muestra el comentario de la versión delgada con las características eliminadas

/*! 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 */