jQuery Deferred对象回调args&动态建设?

时间:2011-11-07 07:22:04

标签: jquery

我在jQuery网站上看到了这段代码:

 1:  var jqxhr = $.ajax( "example.php" )
        .done(function() { alert("success"); })
        .fail(function() { alert("error"); })
        .always(function() { alert("complete"); });

   2: // perform other work here ...

     // Set another completion function for the request above
   3:  jqxhr.always(function() { alert("second complete"); });

2个问题:

  1. 我听说successerrorcomplete的回调函数参数被转移到done,{{1 },fail

    enter image description here

    因此,如果我想在总回调中使用 jqXHR obj,我怎么知道他来自哪里(alwayserror) - 因为{{1方法签名中不同 !!!

    //这里是3

  2. enter image description here

    success

    enter image description here

    1. 我还听说延迟对象帮助我们动态构建回调函数。 (正如我们在'params order'中看到的那样)

      我不明白为什么我需要它?当我得到章节//here it is at place 1 时 - ajax呼叫已经已经并且已完成警报。在哪些情况下,3:部分会付诸实施?

1 个答案:

答案 0 :(得分:1)

如果请求成功与否,

complete()并不意味着执行操作,而是执行通用操作,例如清理事物,重新启用禁用按钮等。

但是,您可以检查第一个参数=== jqxhr$.ajax的返回值) - 如果检查结果为true,则表示存在错误。