jQuery与Google Closure Ajax比较

3

我一直在研究Google Closure库的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库调用似乎要简单得多。

1
$.ajax({url: url, success: function () { }, error: function () { }}); - 你缺少了jQuery版本的ajax回调函数。 - Selvakumar Arumugam
这只是一些伪代码,用来说明这个想法,但我已经进行了编辑。 - Jeff Storey
1个回答

5

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

如果您想要一个更简单的Closure等效于您发布的jQuery示例,则可以使用静态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形成鲜明对比)。这可能适合你,也可能不适合,具体取决于你是否喜欢以面向对象的方式编写JS代码。

在这种特定情况下,如果您创建了一个可用于多个请求的XhrIo对象(例如,您可以为所有请求设置setTimeoutInterval()),则可能会从Closure中获得小优势。如果您关心内存,Closure也可能为您提供对垃圾回收的更明确控制。


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