微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – jquery vs google closure ajax

我一直在寻找用于ajax调用的谷歌闭包库,我已经看过一个示例:

goog.events.listen(request, "complete", function(){
  if (request.isSuccess()) {
    // do something cool
   } else {
     // display an apologize message
   }
});

与jquery示例相反,它看起来像:

$.ajax({url: url, success: function () { }, error: function () { }});

我一直看到谷歌关闭弹出窗口更多,但在这种情况下,优势或劣势是什么?对于像这样的ajax相关调用,jquery库调用似乎要简单得多.

解决方法:

您的Closure样本不完整.我假设您在样本之前创建了一个XhrIo实例并在其上调用了send().

如果你想要一个比你发布的jQuery样本更简单的Closure,你可以使用静态XhrIo.send().它看起来像这样:

goog.net.XhrIo.send(
  url,
  function(event) {
    var xhr = event.target;
    if (xhr.isSuccess()) {
      // do something cool
    } else {
      // display an apologize message
    }
  });

这肯定比jQuery版本更笨拙.一般来说,Closure的设计考虑了面向对象的编程(与jQuery形成鲜明对比,jQuery主要是静态函数).这可能适合您或不适合您,具体取决于您是否更喜欢以面向对象的方式编写JS代码.

在这种特殊情况下,如果您创建一个XhrIo对象,您可以从Closure中获得一个小优势,您可以为多个请求重用该对象(例如,您可以在其上设置setTimeoutInterval()以用于所有请求).如果你关心内存,Closure还可以让你更清楚地控制垃圾收集.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐