我有一个包含多个页面的网站。每个页面都有一个“另存为草稿”方法,可以保存用户的进度。我有 40 分钟的会话超时,我想知道如何做到这一点,以便每当会话过期时,页面会自动调用“另存为草稿”(所以它不会丢失)
我将如何开始做这样的事情?
我有一个包含多个页面的网站。每个页面都有一个“另存为草稿”方法,可以保存用户的进度。我有 40 分钟的会话超时,我想知道如何做到这一点,以便每当会话过期时,页面会自动调用“另存为草稿”(所以它不会丢失)
我将如何开始做这样的事情?
您不能:会话在服务器端过期并且无法向浏览器发送消息(它甚至不知道用户是否仍然看到该页面或已关闭浏览器)。
您可以设置客户端超时以将页面(作为草稿)保存到服务器,但这具有刷新会话的效果!因此,也许只需每 5 到 10 分钟自动“另存为草稿”一次,从而保持您的会话(加上完成工作的草稿副本)。
在 .Net 中,您可以通过 Session_End(object sender, EventArgs e) 例程中的 Global.asax 来完成。我用它来做一些资源释放工作。
当会话过期时,您可以在 global.asax 中调用函数,就像这样
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
If Not Session.Item("sessionid") Is Nothing Then
If Session.Item("sessionid").ToString = "1" Then
ClsUtilities.CustomerLogout()
ElseIf Session.Item("sessionid").ToString = "2" Then
ClsUtilities.Logout()
End If
End If
End Sub