jQuery - 忽略双重 AJAX 调用?
jQuery - ignore double AJAX calls?
我在多个地方有 AJAX 调用(不幸的是,不仅有按钮,还有链接、表单和其他东西),我知道如何手动处理这个(找到我做的每个地方 AJAX 调用然后在第一次调用期间阻止/覆盖按钮),我想知道是否有办法更自动地做到这一点?
如果我们正在谈论 jQuery - 也许是一个插件?会起作用的东西吗? :)
如果有这样的东西就完美了:
if clicked element has .ajax class
block all ajax requests if the current one is still live
然后我将 .ajax class 添加到每个 button/link/whatever 触发请求,瞧。有这样的东西吗?
您可以创建一个全局变量:
loadingAjax = false;
每当事件触发时,您可以使用以下方法将此变量设置为 TRUE:
$("selector").click(function(){
if(!loadingAjax){
loadingAjax = true;
$.ajax(options)..
}
});
并且当 ajax 停止时,您应该将 loadingAjax 重新设置为 false:
$( document ).ajaxStop(function() {
loadingAjax = false
});
我在多个地方有 AJAX 调用(不幸的是,不仅有按钮,还有链接、表单和其他东西),我知道如何手动处理这个(找到我做的每个地方 AJAX 调用然后在第一次调用期间阻止/覆盖按钮),我想知道是否有办法更自动地做到这一点?
如果我们正在谈论 jQuery - 也许是一个插件?会起作用的东西吗? :)
如果有这样的东西就完美了:
if clicked element has .ajax class
block all ajax requests if the current one is still live
然后我将 .ajax class 添加到每个 button/link/whatever 触发请求,瞧。有这样的东西吗?
您可以创建一个全局变量:
loadingAjax = false;
每当事件触发时,您可以使用以下方法将此变量设置为 TRUE:
$("selector").click(function(){
if(!loadingAjax){
loadingAjax = true;
$.ajax(options)..
}
});
并且当 ajax 停止时,您应该将 loadingAjax 重新设置为 false:
$( document ).ajaxStop(function() {
loadingAjax = false
});