ASP.Net - 等到所有页面方法都没有完成

时间:2015-07-30 11:34:53

标签: asp.net c#-4.0

我有一个ASP.NET应用程序,并且有一个页面,其中所有服务器端处理都使用页面方法(页面上提供了脚本管理器)。 现在的问题是服务器上有多个页面方法异步处理,有些需要1~20秒,有些是在另一个成功时执行,但其中一个大约需要30分钟。 会话超时(20分钟)和执行超时(60分钟)并按预期工作。

我还有一个java脚本函数,它检查用户的空闲时间,如果用户在20分钟之前没有采取任何操作,则会出现一条警告消息,即使一个异步请求仍在后面运行,用户也会自动注销。

有没有办法检查是否有任何异步请求仍在运行?如果是,那么我将检查我的java脚本代码谁检查空闲时间。

1 个答案:

答案 0 :(得分:0)

您可以使用JavaScript来计算当前正在运行的页面方法的数量:

var callsRunning = 0;

function callPageMethod()
{     
      callsRunning += 1;
      PageMethods.DoSomething(onSucceed, onError);
      return false;
}   
function onSucceed(result)
{
      callsRunning -= 1;
      alert(result);        
}
function onError(result)
{      
      callsRunning -= 1;
}

因此,您可以随时查看callsRunning > 0是否仍在等待任何方法。