【发布时间】:2012-01-28 07:49:55
【问题描述】:
我想在每次发送 ajax 请求时显示一个“加载”进度条。是否可以随时通知使用 jQuery 发送 ajax 请求?
【问题讨论】:
我想在每次发送 ajax 请求时显示一个“加载”进度条。是否可以随时通知使用 jQuery 发送 ajax 请求?
【问题讨论】:
您可以使用$.ajaxSetup() 方法设置将应用于整个页面的全局 AJAX 属性:
$.ajaxSetup({
beforeSend: function() {
// show progress spinner
},
complete: function() {
// hide progress spinner
}
});
【讨论】:
出于某种原因,$.ajaxSetup() 不适合我。不过,在阅读docs 之后,我发现了以下内容:
注意:全局回调函数应设置各自的 全局 Ajax 事件处理程序方法——.ajaxStart()、.ajaxStop()、 .ajaxComplete()、.ajaxError()、.ajaxSuccess()、.ajaxSend()——而不是 在 $.ajaxSetup() 的选项对象中。
改用$.ajaxStart() 和$.ajaxComplete():
$(document).ajaxStart(function () {
console.log('Request Initiated');
});
$(document).ajaxComplete(function () {
console.log('Request Complete');
});
【讨论】:
尝试使用 jQuery 的 ajaxStart 事件
【讨论】:
ajaxSend,因为它会为所有ajax请求触发(而只有第一个使用ajaxStart)。另见stackoverflow.com/questions/3735877/…
.ajaxError() 和.ajaxStop() 来完成