jquery normal和slim package的区别是什么?

jquery的CDNJS。纤细的包裹被放置。它的尺寸更小。与原作的主要区别是什么?快速查看代码并没有得到答案,在https://jquery.com中,我没有找到任何关于slim包的参考。

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

204853 次浏览

查看代码,我发现jquery.jsjquery.slim.js之间有以下差异:

jquery.slim.js中,删除了以下特性:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each(附加一堆处理常见AJAX事件的函数)
  4. jQuery.expr.filters.animated
  5. AJAX设置(jQuery.ajaxSettings.xhrjQuery.ajaxPrefilterjQuery.ajaxSetupjQuery.ajaxPrefilterjQuery.ajaxTransport)
  6. XML解析(jQuery.parseXML)
  7. 动画效果(jQuery.easingjQuery.AnimationjQuery.speed)

目前,最权威的答案似乎在这个问题中,它表示“这是jQuery的自定义构建,排除了特效、ajax和弃用代码。”具体细节将在jQuery 3.0发布。

我怀疑排除jQuery库中的这些组件的基本原理是认识到jQuery与其他JS框架(如Angular或React)结合使用的情况越来越普遍。在这些情况下,jQuery主要用于DOM遍历和操作,因此去掉那些过时的或由框架提供的组件可以使文件大小减小20%左右。

jQuery 3.0最终版正式发布中得到的简短答案:

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

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

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

从jQuery 文档

你也可以使用精简版,它排除了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 */

jQuery博客jQuery 3.1.1发布!说,

苗条的构建

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

如上所述,Ajax和特效模块已经被排除在jQuery slim之外,缩小版解压后的尺寸差异为85k vs 69k(精简版节省16k)或压缩版为30vs24,重要的是要注意bootstrap 4使用了jQuery,因此如果有人想要完整版,他们需要调用它

我发现一个差异时,创建一个窗体联系人: 苗条 (boostrap 4.5推荐):

    在发送电子邮件后,全局变量卡住了,这使得如果用户给出f5(重新加载页面),它会再次发送。 min < / >强:
  • 之前的错误将被解决。我多么痛苦啊!

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

我刚刚发现,一个元素属性的选择器不会与slim工作。

$('input[type="textarea"]').each(function(index) {});

希望这对你有所帮助。