The questions
.done()
& success:
,.fail()
& error:
和.always()
&.always()
之间有区别吗?前同步码
我正在编写一个jQuery.ajax调用,我在过去也成功地完成了这个调用。如下所示:
$.ajax(
{
url: someUrl,
type: 'POST',
data: someData,
datatype: 'json',
success: function (data) { someSuccessFunction(data); },
error: function (jqXHR, textStatus, errorThrown) { someErrorFunction(); }
});
在快速浏览一些文档时,我遇到了一份参考资料,说明从jQuery 1.8开始,不推荐使用成功、错误和完成回调。要为最终删除它们的代码做好准备,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。
因此,我们应该开始编写类似这样的代码:
$.ajax( "example.php" )
.done(function (data) { someSuccessFunction(data); })
.fail(function (jqXHR, textStatus, errorThrown) { someErrorFunction(); })
.always(function() { alert("complete"); });
发布于 2013-08-16 09:23:56
在这种特殊情况下,这样做是没有好处的。
.done()
.fail()
.always()
方法的要点在于,您可以
如果您在$.ajax
调用站点上只附加了单个处理程序,那么这些优势就不会真正发挥作用。
所以你可以返回promise,其他人可以附加他们自己的处理程序。
示例是在ajax请求后刷新插件:
$.ajaxPrefilter(function(opt, origOpt, jqxhr) {
jqxhr.always(function() {
$("[data-plugin]").plugin();
});
});
https://stackoverflow.com/questions/18264237
复制相似问题