ASP.NET中止ajax调用并创建一个新的

时间:2016-05-30 11:45:16

标签: javascript jquery asp.net ajax

因此,如果其他ajax调用一直运行,ASP.NET将不会进行新的Ajax调用,直到它返回。

我要做的是中止之前的ajax调用并创建新的调用。所以这是我的代码:

var firstAjaxId = null;
object1.onclick=function(){
   firstAjaxId = $.post("/Controller/Method", data, function(response) {
       firstAjaxId = null;
   }
};

object2.onclick=function(){
   //cancel first ajax so we don't wait it's done
   if(firstAjaxId = null){
      firstAjaxId.abort();
   }
   //make new ajax call
   $.post("/Controller/Method2", data, function(response) {
       //do something
   }
};

所以当我尝试进行第二次ajax调用时,如果第一个ajax调用正在运行,那么第二个将首先等待完成。正如你在代码中看到的那样,我试图在制作第二个之前先中止ajax,但这没有用。第二个仍将等到服务器解锁会话。此中止仅中止客户端,因此它不会等待响应,但服务器仍将保持会话锁定。 那么有没有办法使这个工作,取消第一个ajax和发布会议,以便我可以创建新的。

在第一个ajax中调用的方法只从会话中读取,它不会更新它。 在第二个ajax中调用的方法将读取并更新会话。

更新:

不得不说,因为我可以在ajax调用上看到ASP.NET锁定会话,并且它不允许在第一个完成之前进行另一个ajax调用并解锁会话。

在这个问题中解释得很好:

Why would multiple simultaneous AJAX calls to the same ASP.NET MVC action cause the browser to block?

0 个答案:

没有答案