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

En CDNJS se coloca el paquete jquery.slim. Tiene un tamaño más pequeño. ¿Cuáles son las principales diferencias con respecto a un original? Una mirada rápida al código no arrojó la respuesta, y en jquery.com no encontré 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 elimina la siguiente función de código:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each // Adjuntar un conjunto de funciones para el manejo de eventos AJAX comunes
  4. jQuery.expr.filters.animated
  5. Configuraciones 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

La breve respuesta tomada del anuncio de la versión final de jQuery 3.0 :

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

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

En este momento, la respuesta más autorizada parece ser en este tema , que afirma que “es una comstackción personalizada de jQuery que excluye los efectos, ajax y el código obsoleto”. Los detalles se anunciarán con jQuery 3.0.

Sospecho que la justificación para excluir estos componentes de la biblioteca jQuery es en reconocimiento del escenario cada vez más común de jQuery que se utiliza junto con otro marco de JS como Angular o React. En estos casos, el uso de jQuery es principalmente para el cruce de DOM y la manipulación, por lo que omitir aquellos componentes que son obsoletos o que proporciona el framework obtiene una reducción del 20% en el tamaño del archivo.

Pude ver que $.ajax se eliminó 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 */ 

¡El blog jQuery, jQuery 3.1.1 lanzado! , dice,

Complexión delgada

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