Asp.net 如果我有一些巨大的进程运行来响应用户的点击,那么如果他们关闭页面,它会继续运行吗?
如果他们在进程启动后通过页面上的按钮关闭浏览器页面,该进程将继续运行直到完成,还是将终止?如果是这样的话,我将如何让它安全地死去呢?我会马上说,这完全取决于过程以及您如何编写解决方案Asp.net 如果我有一些巨大的进程运行来响应用户的点击,那么如果他们关闭页面,它会继续运行吗?,asp.net,Asp.net,如果他们在进程启动后通过页面上的按钮关闭浏览器页面,该进程将继续运行直到完成,还是将终止?如果是这样的话,我将如何让它安全地死去呢?我会马上说,这完全取决于过程以及您如何编写解决方案 然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态来模拟的。因此,一旦这个过程开始,我会说是的,它将继续运行,直到它将响应发送回客户端。客户是否在那里接收信息完全是另一回事。我可以说,这完全取决于流程和您如何编写解决方案 然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态
然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态来模拟的。因此,一旦这个过程开始,我会说是的,它将继续运行,直到它将响应发送回客户端。客户是否在那里接收信息完全是另一回事。我可以说,这完全取决于流程和您如何编写解决方案
然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态来模拟的。因此,一旦这个过程开始,我会说是的,它将继续运行,直到它将响应发送回客户端。客户端是否在那里接收信息完全是另一回事。页面将继续处理。如果要终止处理,可以检查属性并在客户端不再连接时结束处理 MSDN中的示例:
private void Page_Load(object sender, EventArgs e)
{
// Check whether the browser remains
// connected to the server.
if (Response.IsClientConnected)
{
// If still connected, redirect
// to another page.
Response.Redirect("Page2CS.aspx", false);
}
else
{
// If the browser is not connected
// stop all response processing.
Response.End();
}
}
但是,这假定您能够检查属性。如果进行长时间运行的同步调用,则无法检查属性。如果是这种情况,您可以异步执行它,或者将长时间运行的调用分解为单独的较小调用,在进一步处理之前可以检查状态。页面将继续处理。如果要终止处理,可以检查属性并在客户端不再连接时结束处理 MSDN中的示例:
private void Page_Load(object sender, EventArgs e)
{
// Check whether the browser remains
// connected to the server.
if (Response.IsClientConnected)
{
// If still connected, redirect
// to another page.
Response.Redirect("Page2CS.aspx", false);
}
else
{
// If the browser is not connected
// stop all response processing.
Response.End();
}
}
但是,这假定您能够检查属性。如果进行长时间运行的同步调用,则无法检查属性。如果是这种情况,您可以异步执行它,或者将长时间运行的调用分解为单独的较小调用,在进一步处理之前可以检查状态。当然,您也可以在此之前点击ScriptTimeout(),当然,您也可以点击ScriptTimeout()在此之前,我们是否有办法在页面上设置一些按钮,当点击按钮时会停止实际的处理?就像某种用户操作来停止进程一样?这里有没有什么方法可以让我们在页面上有一个按钮,当点击该按钮时,它会停止实际的进程?像某种用户操作来停止进程?