普通和瘦身jquery包之间有什么区别?

时间:2016-02-16 04:53:52

标签: jquery slim-jquery

放置CDNJS jquery.slim包。它的尺寸较小。与原版有什么主要区别?快速查看代码并没有给出答案,在jquery.com上我没有找到关于slim包的任何参考。

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

8 个答案:

答案 0 :(得分:286)

简短回答来自announcement of jQuery 3.0 Final Release

  

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

文件大小(gzip)大约小6k,23.6k小于30k。

答案 1 :(得分:261)

查看代码,我发现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. xml解析,如jQuery.parseXML,
  7. 动画效果,如jQuery.easing,jQuery.Animation,jQuery.speed

答案 2 :(得分:38)

此时,最权威的答案似乎出现在issue中,其中指出"它是jQuery的自定义构建,它排除了效果,ajax和弃用的代码。"细节将通过jQuery 3.0公布。

我怀疑排除jQuery库的这些组件的基本原理是认识到jQuery与另一个JS框架(如Angular或React)一起使用的日益普遍的情况。在这些情况下,jQuery的使用主要用于DOM遍历和操作,因此遗漏那些过时或由框架提供的组件可以使文件大小减少20%。

答案 3 :(得分:22)

jQuery博客jQuery 3.1.1 Released!说,

  

超薄构建

     

有时您不需要ajax,或者您更喜欢使用专注于ajax请求的众多独立库之一。通常,对所有Web动画使用CSS和类操作的组合更为简单。除了包含ajax和效果模块的常规jQuery版本之外,我们还发布了一个不包含这些模块的“瘦身”版本。总而言之,它排除了ajax,效果和当前已弃用的代码。 jQuery的大小现在很少是一个负载性能问题,但是超薄版本比常规版本小约6k gzipped字节 - 23.6k vs 30k。

答案 4 :(得分:13)

我可以看到jQuery slim 3.2.1

中删除了$.ajax

以下是移除功能的超薄版本的评论

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

答案 5 :(得分:5)

如前所述,AJAX和特效模块已从jQuery slim中排除,从3.3.1版本开始,缩小版本的大小差异为85k与69k(Slim节省16k)或30vs24的差异,重要的是要注意bootstrap 4 uses the slim jQuery,因此,如果有人想要完整版本,则需要调用该版本

答案 6 :(得分:0)

我在创建表单联系人时发现了不同之处: 苗条(由boostrap 4.5推荐):

  • 发送电子邮件后,全局变量将卡住,这使得如果用户给出f5(重新加载页面),则会再次发送它。 分钟
  • 先前的错误将得到解决。我是怎么受苦的!

答案 7 :(得分:0)

当我想使用 jQuery UI 时有很大的不同。使用 jQuery 的精简版,这是不可能的。 实际上,slim 版本不包括 ajax 和效果模块