tet*_*ris 8 ajax jquery readystate onreadystatechange
如何在jQuery $.ajax
方法上调用Ajax就绪状态?
$.ajax()
返回 XmlHttpRequest 对象,所以如果你真的想在状态改变时访问它,你可以这样做:
var xhr = $.ajax({ ... });
xhr.onreadystatechange = function() { alert(xhr.readyState); };
Run Code Online (Sandbox Code Playgroud)
但是内置回调应该是大多数用途所需要的,特别是success
和complete
。
要在请求触发之前执行操作,请使用beforeSend
,或者更适合大多数情况下的.ajaxStart()
和.ajaxStop()
事件...例如,在任何 ajax 活动正在进行时显示加载消息。
方法,用 jQuery 2.0.2 测试:
$.ajax({
beforeSend: function (jqXHR, settings) {
var self = this;
var xhr = settings.xhr;
settings.xhr = function () {
var output = xhr();
output.onreadystatechange = function () {
if (typeof(self.readyStateChanged) == "function") {
self.readyStateChanged(this);
}
};
return output;
};
},
readyStateChanged: function (xhr) {
if (xhr.readyState == 1) {
/* Connected! Do something */
}
},
url: "..."
});
Run Code Online (Sandbox Code Playgroud)
基本上,我需要的是在readyState
变成1
(Connected)之后的回调,就我而言,这在使用 jQuery 实现长轮询“推送”通知时很有用。
归档时间: |
|
查看次数: |
31562 次 |
最近记录: |