我有这个代码
$('#postinput').on('keyup',function(){
var txt=$(this).val();
$.ajax({
type: "POST",
url: "action.php",
data: 'txt='+txt,
cache: false,
context:this,
success: function(html)
{
alert(html);
}
});
});
$('#postinput2').on('keyup',function(){
var txt2=$(this).val();
$.ajax({
type: "POST",
url: "action.php",
data: 'txt2='+txt2,
cache: false,
context:this,
success: function(html)
{
alert(html);
}
});
});
假设用户单击#postinput
,处理需要 30 秒。如果在此期间用户单击#postinput2
.我想给他一个警觉"Still Processing Your Previous request"
.有没有办法检查某些 ajax 是否仍在处理中?
假设我在页面上运行了很多 ajax。有没有一种方法可以知道是否只有一个正在处理中?
您可以根据
AJAX 调用的开始时间将变量设置为 true
或false
,例如:
var ajaxInProgress = false;
$('#postinput2').on('keyup',function(){
var txt2=$(this).val();
ajaxInProgress = true;
$.ajax({
..
..
success: function(html) {
ajaxInProgress = false;
现在,如果您需要在通话前检查它:
if (ajaxInProgress)
alert("AJAX in progress!");
或者,使用全局 AJAX 事件设置变量
$( document ).ajaxStart(function() {
ajaxInProgress = true;
});
$( document ).ajaxStop(function() {
ajaxInProgress = false;
});