Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery与googleclosureAjax_Javascript_Jquery_Ajax_Google Closure Library - Fatal编程技术网

Javascript jquery与googleclosureAjax

Javascript jquery与googleclosureAjax,javascript,jquery,ajax,google-closure-library,Javascript,Jquery,Ajax,Google Closure Library,我一直在研究ajax调用的google闭包库,我已经通过了一个如下示例: goog.events.listen(request, "complete", function(){ if (request.isSuccess()) { // do something cool } else { // display an apologize message } }); 与jquery示例不同,jquery示例如下所示: $.ajax({url: url, succ

我一直在研究ajax调用的google闭包库,我已经通过了一个如下示例:

goog.events.listen(request, "complete", function(){
  if (request.isSuccess()) {
    // do something cool
   } else {
     // display an apologize message
   }
});
与jquery示例不同,jquery示例如下所示:

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

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

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

如果您想要一个与发布的jQuery示例等效的更简单的闭包,可以使用static
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版本更笨重。一般来说,闭包的设计考虑了面向对象编程(与jQuery形成鲜明对比,jQuery主要是静态函数)。这可能适合您,这取决于您是否喜欢以面向对象的方式编写JS代码


在这种特殊情况下,如果您创建一个可重复用于多个请求的
xrio
对象(例如,您可以对其
setTimeoutInterval()
以用于所有请求),您可能会从闭包中获得一点好处。如果您关心内存,闭包还可以让您更明确地控制垃圾收集。

$.ajax({url:url,success:function(){},error:function(){})-您缺少jQuery版本的ajax回调函数。这只是一些伪代码来说明这个想法,但我已经编辑过了。