jquery vs google closure ajax

jquery vs google closure ajax

本文关键字:ajax closure google vs jquery      更新时间:2023-09-26

我一直在研究ajax调用的google闭包库,并且我已经完成了一个示例,看起来像:

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 () { }});

我已经看到谷歌关闭弹出很多,但在这种情况下,它的优点或缺点是什么?jquery库调用对于ajax相关的调用来说似乎要简单得多,比如这个。

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

如果你想要一个更简单的闭包相当于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形成鲜明对比,jQuery主要是静态函数)。这可能适合你,也可能不适合你,这取决于你是否喜欢用面向对象的方式编写JS代码。

在这种特殊情况下,如果您创建一个XhrIo对象,您可以重用多个请求(例如,您可以在其上使用setTimeoutInterval()以用于所有请求),那么您可能会从Closure中获得一个小优势。如果您关心内存,闭包还可以让您更显式地控制垃圾收集。