Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net-等待所有页面方法未完成_Asp.net_C# 4.0 - Fatal编程技术网

ASP.Net-等待所有页面方法未完成

ASP.Net-等待所有页面方法未完成,asp.net,c#-4.0,Asp.net,C# 4.0,我有一个ASP.NET应用程序,有一个页面,其中所有服务器端处理都使用页面方法(第页提供了脚本管理器)。 现在的问题是,有多个页面方法在服务器上异步处理,有些需要1~20秒,有些需要在另一个成功时执行,但其中一个大约需要30分钟。 会话超时(20分钟)和执行超时(60分钟)并按预期工作 我还有一个java脚本函数,它检查用户的空闲时间,如果用户在20分钟之前没有采取任何行动,则会出现一条警告消息,即使一个异步请求仍在运行,用户也会自动注销 有没有办法检查异步请求是否仍在运行?如果是,那么我将检查

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

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


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

您可以使用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;
}

因此,在任何时候,您都可以检查
调用运行>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
,查看是否有任何方法仍在等待。

感谢您的快速回复。我相信上面的解决方案对我来说是可行的,但是我使用了太多的页面方法,所以这将是一项非常繁琐的工作,因为我需要在每个页面上声明变量“callsRunning”。在整个应用程序中是否有使用上述内容的常用方法?我建议使用母版页,每个单独的页面都使用母版页。但如果我在母版页中声明“callsRunning”,那么它将是我应用程序中所有其他页面的全局。因此,如果page1将其增加到3,如果我将Page2打开到新选项卡中,那么这里的初始值将是3。因此,我们永远不会在callsRunning=0时到达。在每个页面和每个页面方法上,我需要增加/减少成功和首字母。母版页和javascript不是这样工作的。生成的合并页面不与其他页面共享DOM。JavaScript在浏览器中运行,并且仅在当前页面的范围内。每个生成的页面都有一个callsRunning实例。感谢您的快速回复。我相信上面的解决方案对我来说是可行的,但是我使用了太多的页面方法,所以这将是一项非常繁琐的工作,因为我需要在每个页面上声明变量“callsRunning”。在整个应用程序中是否有使用上述内容的常用方法?我建议使用母版页,每个单独的页面都使用母版页。但如果我在母版页中声明“callsRunning”,那么它将是我应用程序中所有其他页面的全局。因此,如果page1将其增加到3,如果我将Page2打开到新选项卡中,那么这里的初始值将是3。因此,我们永远不会在callsRunning=0时到达。在每个页面和每个页面方法上,我需要增加/减少成功和首字母。母版页和javascript不是这样工作的。生成的合并页面不与其他页面共享DOM。JavaScript在浏览器中运行,并且仅在当前页面的范围内。每个生成的页面都有一个callsRunning实例。