jQuery的“deferred对象/承诺”性能如何?

5

有没有人知道使用新的jQuery“promises/deferred object”模式与旧的jQuery样式ajax方法相比,是否存在任何显著的性能惩罚?旧的方法中有标准的“success”和“error”回调。

我知道向前移动现在我们没有太多选择,因为“deferred”对象已经内置到了AJAX核心中,但是我想知道是否有任何可衡量的差异,以及新的“promises”设计模式是否比旧的匿名函数回调更有效率?

顺祝商祺, 马克

1个回答

3
没有任何区别,这只是语法糖。如果您关心性能,请不要使用jQuery抽象层。
创建自己的XMLHttpRequest对象,并在纯JS中处理它。
[编辑]
重新表述:新的deferred/promises包装器有一些额外的层和函数需要经过,因此会有非常小的性能损失。
与使用jQuery进行ajax而不是XMLHttpRequests相比,性能差异可能低一个数量级。
这两种差异都相当微不足道,与它们提供的灵活性和跨浏览器兼容性相比。
如果它们很重要,那么明显您正在发送太多的ajax请求。

2
你有任何数据支持使用jQuery进行ajax调用会变慢吗?我不倾向于相信它会显著变慢。 - xaxxon
与网络延迟相比,您可以忽略由类似jQuery的包装器引起的轻微性能损失。 - ThiefMaster
性能不是问题,jQuery 所承诺的是跨浏览器兼容性。 - Hussein
@xaxxon 它并没有明显变慢。我只是想说,就性能而言,JS和jQuery与jQuery和jQuery 1.5之间的差异更大。 - Raynos
https://twitter.com/derickbailey/status/210860648924590080 有人也在推特上发了同样的内容。 - Sanjeev Kumar Dangi
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接