普通和苗条的jquery包有什么区别?


436

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

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



在我看来,您接受了平庸的答案,应该对此进行更改。
罗伯·西默

@RobertSiemer,也许是,但是在我看来,数百人的投票非常清楚地表明了现实。接受的答案足够完整且及时,现在仍然可以提供简短,快速且足够使用的解决方案。
SynCap

我完全不同意你的看法。与下面的其他答案相比,接受的答案的投票没有任何意义(您应该知道)。对于公共问答网站而言,无论答案是什么,时光倒流都是完全不相关的。人们现在来到这里,需要最好的答案。进一步:Bhojendra Rauniyar完全可以没有那15个代表。点。
罗伯特·西默

与其他答案相比,否决票的绝对数量更好地指示了质量。——我刚刚意识到,第二个答案实际上是投票最多的,因此没有太多要说的了。
罗伯·西默

Answers:


296

查看代码,我发现jquery.js和jquery.slim.js之间存在以下差异:

在jquery.slim.js中,删除了以下功能:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each //附加一堆函数来处理常见的AJAX事件
  4. jQuery.expr.filters.animated
  5. 像jQuery.ajaxSettings.xhr,jQuery.ajaxPrefilter,jQuery.ajaxSetup,jQuery.ajaxPrefilter,jQuery.ajaxTransport,jQuery.ajaxSetup之类的ajax设置
  6. 像jQuery.parseXML一样进行xml解析,
  7. 动画效果,例如jQuery.easing,jQuery.Animation,jQuery.speed

6
在3.x slim源代码中,我仍然看到jQuery.fn.extend用于将方法添加到包装的集合中的情况。您是指#1中的其他内容吗?
cantera

39
值得注意的是,Bootstrap 4的目标是jQ slim版本。动画可能是最大的中断点,但是无论如何,使用CSS3可以更快更好地完成动画。
乔什·哈布达斯

3
“ jQuery.each”是什么意思?jQuery.each尚未在jQuery 3 slim中删除
Chris Moschini

18
可能想要编辑答案以不同地表达这一点-说jquery。这里被删除的列表中的每个都令人困惑。
克里斯·莫斯基尼

1
诸如slideUp,slideDown之类的功能也不适用于超薄版本。
Usman Arshad

316

jQuery 3.0 Final Release发布时的简短答案:

连同包含ajax和effects模块的jQuery常规版本一起,我们发布了排除这些模块的“ slim”版本。总而言之,它不包括ajax,效果和当前不建议使用的代码。

文件大小(压缩后)约6k,23.6k和30k。


40

这时,最权威的答案似乎是在本期中,它指出“这是jQuery的自定义版本,不包括效果,ajax和不推荐使用的代码”。详细信息将在jQuery 3.0中宣布。

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


10
也可以由使用现代功能的开发人员使用,例如,现代功能fetch()可以替代XMLHttpRequest(AJAX)。
弗雷德(Fred)

25

jQuery博客jQuery 3.1.1发布了!,说,

苗条的身材

有时您不需要ajax,或者您更喜欢使用许多专注于ajax请求的独立库之一。通常,对所有Web动画使用CSS和类操作的组合会更简单。与包括ajax和effects模块的jQuery常规版本一起,我们发布了一个“ slim”版本,其中不包括这些模块。总而言之,它不包括ajax,效果和当前不建议使用的代码。如今,jQuery的大小很少会涉及到负载性能,但是苗条的构建比常规版本小6k gzip压缩字节,即23.6k vs 30k。


17

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

从jQuery 文档

您还可以使用苗条的构建,它不包括ajax和effects模块

以下是精简版的注释,其中删除了功能

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

$ .ajax的替代品是什么?
Zyo

2
@Zyo可以在纯JavaScript中使用xmlhttprequest对象,也可以使用jQuery普通版。
kiranvj


@Octavioamu提取是一个选项,但可能需要基于支持的浏览器的
polyfill

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.