jqXHR
返回的 Since jQuery 1.5 - $.ajax()
个对象实现了Promise
接口。
docs还声明jqXHR.done
,jqXHR.fail
,jqXHR.always
是已弃用 success
/ {{的替代构造1}} / fail
。
弃用通知:jqXHR.success(),jqXHR.error()和 从jQuery 1.8开始,jqXHR.complete()回调被弃用。准备 你的代码最终删除,使用jqXHR.done(),jqXHR.fail(), 和jqXHR.always()相反。
好的。(很久以前就知道了)
但后来我看到了complete
doc:
async:从jQuery 1.8开始,
async
与async: false
的使用是 弃用;您必须使用成功/错误/完整回调选项 代替的jqXHR对象的相应方法,如jqXHR ($.Deferred)
或jqXHR.done()
。
这里的措辞非常不清楚(imho) - 因此,我不明白它的含义。
问题:
是否有任何情况仍然我需要使用deprecated jqXHR.success()
?怎么会 ?他们被弃用了!
nb,为什么这一切都搞乱了?他们改变并删除方法并替换(例如管道,然后)像每个版本
答案 0 :(得分:4)
弃用的是同时使用async:false和jqXHR($ .Deferred)API(合并用法)。
success/error/complete
的{{1}}回调选项未弃用。
$.ajax()
,jqXHR.success()
和jqXHR.error()
回调已弃用。
使用异步AJAX请求(jqXHR.complete()
)时,您可以使用async: true
或 {{success/error/complete
回调选项1}},$.ajax()
,jqXHR.done
。
但是当使用同步AJAX请求(jqXHR.fail
)时,
您不应使用延迟API(jqXHR.always
,async: false
,jqXHR.done
),
但使用jqXHR.fail
的{{1}}回调选项。