正常和苗条的jQuery包之间有什么区别?

在CDNJS jquery.slim包被放置。 它有一个较小的尺寸。 与原文有什么重大区别? 快速查看代码没有带来答案,并在jquery.com我还没有find任何有关slim包的参考。

那么,jquery.js和jquery.slim.js有什么区别呢?

看看代码,我发现jquery.js和jquery.slim.js之间的以下区别:

在jquery.slim.js中,下面的代码函数被删除:

  1. 1.3中
  2. jquery.fn.load
  3. jquery.each //附加一些处理常见AJAX事件的函数
  4. jQuery.expr.filters.animated
  5. Ajax设置,如jQuery.ajaxSettings.xhr,jQuery.ajaxPrefilter,jQuery.ajaxSetup,jQuery.ajaxPrefilter,jQuery.ajaxTransport,jQuery.ajaxSetup
  6. XMLparsing像jQuery.parseXML,
  7. animation效果,如jQuery.easing,jQuery.Animation,jQuery.speed

从jQuery 3.0最终版发布的简短答案:

除了包含ajax和特效模块的常规jQuery版本,我们还发布了一个排除这些模块的“超薄”版本。 总而言之,它排除了ajax,效果和当前被弃用的代码。

文件大小(gzipped)是大约6k小,23.6k vs 30k。

在这个时候,最权威的答案似乎是在这个问题 ,它指出“这是一个排除效果,AJAX和不推荐使用的代码的jQuery的自定义构build。 细节将与jQuery 3.0宣布。

我怀疑排除jQuery库的这些组件的基本原理是认识到jQuery与另一个JS框架(如Angular或React)结合使用的越来越普遍的情况。 在这些情况下,jQuery的使用主要是针对DOM遍历和操作的,所以把那些已经过时或者由框架提供的组件放弃了,文件大小减less了20%。

我可以看到$.ajax从jQuery slim 3.2.1中删除

以下是删除function的超薄版本的评论

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