2011-11-08 126 views
0

在我的网站上,我在鼠标悬停和鼠标悬停事件设置在HTML表格上。这些事件触发ajax请求,并执行某些操作等。但是,我希望能够不触发第二个请求,如果已经运行。那么,有没有发现这些请求,因此避免了一秒钟。顺便说一句,我使用jQuery $.ajax() 如果它有帮助。检测AJAX请求

在此先感谢

克里斯

回答

0

我想尝试的东西一样简单:

var requestMade = false; 

function yourAjaxFunction(){ 
    if(!requestMade) 
    { 
     requestmade = true; 
     $.ajax({ 
      url: "page", 
      success: function(){ 
       requestMade = false; 
      } 
      error: function(){ 
       requestMade = false; 
      } 
     }); 
    } 
} 

您可以使用success:error:设置改变变量回false。

我从来没有使用error所以你可能不得不包含其他一些东西,但这是一般的想法。

0

对于这个假设我会使用ajaxStart()ajaxStop()这将改变特定变量ajaxRunning可能在发送请求之前进行检查(直接也许在ajaxStart()?)

0

当第一个ajax即将触发时,将全局或本地静态变量设置为true,而不是在触发第二个之前添加;)在完成一个请求之后,将此变量设置为false