Zepto 和 jQuery2之间的区别是什么?

有两个类似的项目:

Zepto.js

Zepto 是一个用于现代浏览器的极简 JavaScript 库 基本上与 jQuery 兼容的 API。

JQuery 2.0

JQuery 2.0 beta: 这是你对未来的预测,一个不需要支持 IE 6、7或8就可以变得更快更小的 jQuery。对于特定于平台的 HTML 应用程序来说,这是一个很好的选择。

这仅仅与性能有关,还是它们遵循不同的方法?

42974 次浏览

Zepto.js 和 jQuery 的主要区别在于它们各自的文件大小是 Zepto.js 的 ~ 20kb (缩小,而不是 gzip) ,而不是 jQuery 的 ~ 80kb; Zepto.js 的 ~ 10kb (缩小,Gzip) ,而不是 jQuery 的 ~ 30kb。此外,Zepto 对于像 IE<10这样的浏览器的支持不是缺乏就是没有保证,它的目标平台是:

  • Safari 5 + (桌面)
  • Chrome5 + (桌面)
  • Mozilla Firefox 4 +
  • IOS4 + Safari
  • Android 2.2 + 浏览器
  • 其他基于 WebKit 的浏览器/运行时
  • WebOS 1.4.5 + 浏览器
  • BlackBerry Tablet OS 1.0.7 + 浏览器
  • Amazon Silk 1.0 + 亚马逊丝绸1.0 +
  • Opera 10 +
  • Internet Explorer 10 +

Jquery 2是 ~ 30kb,zepto 是 ~ 10kb,两者都被压缩和缩小。没有压缩但是缩小了,jquery 2是 ~ 80kb,zepto 是 ~ 30kb。

使用分析程序检查网站的受众。如果有相当一部分用户使用 IE9,则需要使用 jquery,而 zepto 无法运行。如果超过几个百分点的用户使用 IE8或更低的版本,你不能让他们在没有你的站点的情况下搁浅,你将需要使用 jquery 1。如果你的目标是最后一个,我很抱歉,很多新的闪亮的玩具不适合你。

如果你正在为 android/ios/phonegap 等构建一个 html5应用程序,那么你主要针对的是 webkit,所以 zepto 确实给你节省了大量的空间。Zepto 存在的主要原因是,当只在 webkit 平台上运行时,许多 jquery 的跨平台解决方案是完全不必要的。

Zepto 也添加了一些触摸事件处理程序来帮助手机开发,但是你需要考虑的主要是页面权重和平台支持。

Zepto 缺乏 jQuery 所特有的延迟/承诺 API。

这是一个有点老的问题,但我想添加性能。据我所知,Zepto 比 jQuery 表现得更好。

这个 JsPerf显示了不同的结果。与 Zepto 相比,我可以经常使用 jQuery 的类选择(单个元素)137% 。对于 ID 选择,我可以经常使用 jQuery 的285% 。

对于大多数应用程序来说,这是一个很大的问题,DOM 交互是唯一重要的性能统计数据(网络请求除外)。

另外,通过查看 perf,我发现我可以像 jQuery 一样频繁地使用 document.getElementsByClassName 8326% ,所以如果可能的话,我们都应该抛弃所有这些: -)

据我所知,人们似乎更倾向于 Zepto。这背后最常见的原因是文件大小,但是 jQuery2在加载后实际上比 Zepto 更快。另外,由于大多数人都是围绕 jQuery 开发的,因此您不会发现对 Zepto 的太多支持。我并不是建议您不要使用 Zepto,但是您应该研究一下为什么要使用它,以及是否使用了其他 JavaScript 库的支持/冲突。

我会说这取决于你的项目。对于个人或有限的使用,Zepto 可能是更好的选择。但是,jQuery 更受其他库的支持,如果文件大小是唯一决定原因的因素,那么它就是有缺陷的。JavaScript 应该在页面加载之后加载,因此在任何情况下都不会阻碍页面加载时间。

这里 是性能测试,包括 jQuery 1.7.2、 Zepto 1.0 rc1和 jQMobi 1.03。

我认为从来没有使用过 Zepto 快速转换成网络看看在他的冰洞深处,聪明和强大的 Yeti 听到人们问,“ Zepto 去哪里了?”在构思 Foundation4的时候,我们转向了 Zepto (带有 jQuery 选项) ,因为它的文件大小更小,加载时间更快。

但是随着时间的推移,我们发现更轻的文件大小并没有转化为更好的整体性能。当然,Zepto 下载得很快。但是一旦加载,它就没有 jQuery 那么快了。许多第三方插件需要 jQuery,而不是 Zepto,这并没有什么帮助ーー事实上,我们发现一些第三方 JavaScript 与 Zepto 完全冲突。

维护不同的代码库对我们来说也不容易。例如,Zepto 缺乏适当的高度计算功能,使得某些网格计算变得困难。

要解决所有这些问题,答案就像喜马拉雅山春天的天空一样清晰: Foundation5使用 jQuery2。除了更快的速度和业界的接受度,jQuery 2还得益于更好的文档和支持。JQuery 与 API 兼容。

**

但是我们假设 Zepto 会比 jQuery 更快,我们不想这样 做两次相同的假设,所以我们测试了 Zepto 和 jQuery 2 结果: jQuery2每秒有更多的操作 5更好的表现,这意味着所有人都有更好的经验 用户。

**

最终,我们希望帮助人们更快地设计出伟大的产品ーー而这一次,这意味着要为世界上反应最灵敏的前端框架提供速度上的提升。