jQuery Deferred vs jqXHR

前端之家收集整理的这篇文章主要介绍了jQuery Deferred vs jqXHR前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我用:
var jqXHR = $.ajax(settings);
jqXHR.success(function(result){});
jqXHR.error(function(result){});
jqXHR.complete(function(result){});

但1.5版本添加了延迟对象。

问:一般来说,您什么时候使用成功,错误和完整的方法与延迟的新热度,完成和失败?

解决方法

对于$ .ajax()和family .success只是Deferred的.done的同义词,同样.error是.fail的同义词。

所以实际上你显示的例子已经是延迟的方法,但是使用不同的名字。

.complete主要是新的jQuery 1.6 .always的同义词,您可以使用$ .then(cb,cb)获得相同的效果,这将导致cb被调用,无论AJAX调用是否成功。我认为参数传递给.complete,.always和$ .then变体之间的“失败”回调有很小的区别。

我个人更喜欢使用这些命名函数的Deferred版本,因为那样你不需要担心你的延迟对象是否是jqXHR。只有jqXHRs具有.success,.error和.complete,但每个Deferred(包括jqXHR)都有.done,.fail和.always。

编辑似乎jQuery开发人员同意我 – 他们有announced.Success,.error和.complete将被弃用在jQuery 1.8

猜你在找的jQuery相关文章