fat*_*Dev 3 ajax jquery asp.net-ajax
我正在使用asp控件,我有一些下拉列表,在选择中返回到服务器并执行一些操作(通过asp ajax)我正在寻找的是在ajax调用启动时通过jquery检测我已经尝试过以下电话:
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
alert("ok");
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
和
also $(document).ajaxStart(function () {
alert("OK");
});
Run Code Online (Sandbox Code Playgroud)
但这一切都没有奏效
好吧,如果$(document).ajaxStart(function() {});不适合你,试试一下原始的js,
var oldXHR = window.XMLHttpRequest;
function newXHR() {
var realXHR = new oldXHR();
realXHR.addEventListener("readystatechange", function() {
if(realXHR.readyState==1){
alert('server connection established');
}
if(realXHR.readyState==2){
alert('request received');
}
if(realXHR.readyState==3){
alert('processing request');
}
if(realXHR.readyState==4){
alert('request finished and response is ready');
}
}, false);
return realXHR;
}
window.XMLHttpRequest = newXHR;
Run Code Online (Sandbox Code Playgroud)
它应该给你一个ajax请求的所有状态,并检查哪一个适合你,然后你可以删除其余的if条件.你可以把它放在外面$(document).ready(function(){});
真的不推荐,但您可以使用.ajaxStart()和.ajaxComplete()处理程序:
$(document).ajaxStart(function() {
console.log('Ajax call started');
$("#loading").show();
});
$(document).ajaxComplete(function() {
console.log('Ajax call completed');
$("#loading").hide();
});
Run Code Online (Sandbox Code Playgroud)
重要说明从 jQuery 1.9 开始,jQuery 全局 Ajax 事件的所有处理程序都必须附加到
document.
请记住,如果您的 ajax 调用包含global: false,则请求将忽略调用默认全局配置(这也意味着不会调用.ajaxStart()和.ajaxComplete()回调。
如果您不想设置全局回调,您可以将它们专门设置为您进行的 ajax 调用:
$.ajax({
method: "GET", // or POST
url: "path",
....
beforeSend: function() {
console.log('Ajax call started');
$("#loading").show();
},
complete: function() {
console.log('Ajax call completed');
$("#loading").hide();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5990 次 |
| 最近记录: |