【问题标题】:jQuery 'deferred object/promises' Performance?jQuery'延迟对象/承诺'性能?
【发布时间】:2011-06-30 23:02:27
【问题描述】:

是否有人知道使用新的 jQuery 'promises/deferred object' 模式而不是具有标准“成功”和“错误”回调的旧 jQuery 样式 ajax 方法所涉及的任何重大性能损失?

我知道继续前进,我们现在没有太多选择,因为“延迟”对象现在已内置到 AJAX 核心中,但我想知道是否有任何可衡量的差异,以及新的“承诺”设计模式是否实际上更有效不仅仅是老式的匿名函数回调?

亲切的问候, 标记

【问题讨论】:

    标签: jquery jquery-deferred


    【解决方案1】:

    应该没有区别。这只是语法糖。

    如果您关心性能,请不要使用 jQuery 抽象。

    创建您自己的XMLHttpRequest 对象并在纯JS 中处理它。

    [编辑]

    换种说法:新的 deferred/promises 包装器的性能损失非常小,因为它有更多的层和功能需要通过。

    性能差异可能比使用 jQuery 进行 ajax 而不是 XMLHttpRequests 的性能差异低一个数量级。

    与它们为您提供的灵活性和跨浏览器合规性相比,这两个差异都可以忽略不计。

    如果它们很重要,那么直言你有太多的 ajax 请求发生了。

    【讨论】:

    • 您是否有任何数字支持使用 jquery 进行 ajax 调用很慢?我不倾向于相信它会明显变慢。
    • 与网络延迟相比,您可以忽略像 jquery 这样的包装器造成的轻微性能损失...
    • 性能没问题,jQuery 承诺的跨浏览器兼容性。
    • @xaxxon 和其他人:记住被问到的问题。 OP 正在有效地询问微优化。答案对我来说似乎很合适。不要担心差异,但如果您关心优化级别,那么通过删除抽象您将获得更多收益。我不 @Raynos 说在大多数情况下成本不值得收益。
    • @xaxxon 并没有明显变慢。我只是说 JS 和 jQuery 与 jQuery 和 jQuery 1.5 在性能方面的区别更大。
    猜你喜欢
    • 1970-01-01
    • 2015-03-27
    • 2023-03-21
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多