欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  在案例中有多个延迟对象传递给jQuery.when ,该方法返回一个新的“宿主”延迟对象,跟踪所有已通过Deferreds聚集状态。 当所有的延迟对象被受理(resolve)时,该方法才会受理它的 master 延迟对象。当其中有一个延迟对象被拒绝(rejected)时,该方法就会拒绝它的 master 延迟对象。如果 master 延迟对象被受理(resolved),那么会传入所有延迟对象的受理(resolved)值,这些延迟对象指的就是传给 jQuery.when 的参数。例如,当延迟对象是 jQuery.ajax() 请求,那么传入的受理(resolved)参数就是请求用的 jqXHR 对象,传入顺序就是它们在参数列表中的顺序。
  
  在多延迟情况下,如果延迟一被拒绝,jQuery.when触发立即调用 master 延迟对象的 failCallbacks。请注意,在上述情况中,有一些延迟对象依然是不能被受理(unresolved)的。那么,在这种情况下,如果需要执行一些额外的处理,例如,取消所有未完成的 ajax 请求,你可以在闭包中进行保持 jqXHR 对象的引用,并且在 failCallback 中检查或取消它们。
  
  例子:
  
  Example: 执行Ajax请求后两个函数是成功的。(见jQuery.ajax()对于一个成功的和错误的案件为AJAX请求的完整描述文档)。
  
  $.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1,  a2){
  
  /* a1 and a2 are arguments resolved for the
  
  page1 and page2 ajax requests, respectively */
  
  var jqXHR = a1[2]; /* arguments are [ "success", statusText, jqXHR ] */
  
  if ( /Whip It/.test(jqXHR.responseText) ) {
  
  alert("First page has 'Whip It' somewhere.");
  
  }
  
  });
  
  Example: 执行函数myFunc当两个Ajax请求是成功的,如果任一或myFailure有一个错误。
  
  $.when($.ajax("/page1.php"), $.ajax("/page2.php"))
  
  .then(myFunc, myFailure);

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64059.shtml