【发布时间】:2011-06-30 23:02:27
【问题描述】:
是否有人知道使用新的 jQuery 'promises/deferred object' 模式而不是具有标准“成功”和“错误”回调的旧 jQuery 样式 ajax 方法所涉及的任何重大性能损失?
我知道继续前进,我们现在没有太多选择,因为“延迟”对象现在已内置到 AJAX 核心中,但我想知道是否有任何可衡量的差异,以及新的“承诺”设计模式是否实际上更有效不仅仅是老式的匿名函数回调?
亲切的问候, 标记
【问题讨论】:
是否有人知道使用新的 jQuery 'promises/deferred object' 模式而不是具有标准“成功”和“错误”回调的旧 jQuery 样式 ajax 方法所涉及的任何重大性能损失?
我知道继续前进,我们现在没有太多选择,因为“延迟”对象现在已内置到 AJAX 核心中,但我想知道是否有任何可衡量的差异,以及新的“承诺”设计模式是否实际上更有效不仅仅是老式的匿名函数回调?
亲切的问候, 标记
【问题讨论】:
应该没有区别。这只是语法糖。
如果您关心性能,请不要使用 jQuery 抽象。
创建您自己的XMLHttpRequest 对象并在纯JS 中处理它。
[编辑]
换种说法:新的 deferred/promises 包装器的性能损失非常小,因为它有更多的层和功能需要通过。
性能差异可能比使用 jQuery 进行 ajax 而不是 XMLHttpRequests 的性能差异低一个数量级。
与它们为您提供的灵活性和跨浏览器合规性相比,这两个差异都可以忽略不计。
如果它们很重要,那么直言你有太多的 ajax 请求发生了。
【讨论】: