javascript – 检查页面上是否有一些ajax正在处理中?

我有这个代码

$('#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.我想给他一个警告“仍在处理你以前的请求”.有没有办法可以检查一些ajax是否还在处理中?

假设我在页面上运行了很多ajax.有没有一种方法可以知道即使是一个人正在处理?

解决方法:

您可以将变量设置为true或false,具体取决于AJAX调用何时开始,例如:

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;
});

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...