1

从 jQuery 的 1.5/1.51 版本开始,我们可以像这样发出 ajax 请求

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

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

1> 我仍在寻找一些示例/演示/一些信息,以了解这种执行 jQuery.ajax 的方式有什么重要目的,而以前的方式没有服务

2> 这个 jqXHR 对象有多大用处。

3> 我正在寻找一些实用的东西

4

3 回答 3

2

好吧,jQuery自己

$.ajax() 函数返回它创建的 XMLHttpRequest 对象。通常 jQuery 在内部处理该对象的创建,但可以使用 xhr 选项指定用于制造对象的自定义函数。返回的对象通常可以被丢弃,但确实提供了一个用于观察和操作请求的较低级别的接口。特别是,在对象上调用 .abort() 将在请求完成之前停止请求。

因此,如果出于某种原因您需要创建自己的 XMLHTTPRequest 对象并将其发送到 $.ajax,这提供了一种在请求后取回该对象的方法。

于 2011-03-01T20:53:07.390 回答
1

好吧,从外观上看,它们似乎改进了 XMLHttpRequest 对象的包装,正如您在问题中所说,现在您实际上可以为不同的 ajax 事件堆叠方法。

顺便说一句,如果你还没有注意到,你可以看到它们并没有完全改变包装,所以会向后兼容旧的 $.ajax 代码。

我想这整个改进是提供 $.ajax 方法,jQuery 已经提供的类似系统的 dom 事件,仅用于事件。

所以最重要的是,除了 ajax 事件的堆叠方法之外,这里并没有什么特别之处。

于 2011-03-01T21:02:22.287 回答
0

对我来说最简单的实际例子是你可以考虑使用$.ajaxjQuery.getJSON这样的简化形式,因为现在你也可以使用error处理程序$.getJSON

$.getJSON(
    'myServerUrl',
    {param1: "foo", param2: "bar"},
    function(data) {})
 .error(function() { alert("error"); });

此外,您要求提供更多信息。这里有两个链接:在 jQuery 1.5 中使用 DeferredsPROMISES FROM A TO J,它解释了$.ajax.

于 2011-03-03T08:29:27.350 回答