当我们转到另一个页面时运行的事件是什么。是卸载吗?
Protected Sub Edit_Unload(sender As Object, e As EventArgs) Handles Me.Unload
End Sub
Unload
发生在请求的末尾*。它与导航到其他页面没有任何关系。页面在单个请求的整个过程中“加载”和“卸载”;它出现的唯一原因是 Web 表单的东西在幕后发挥的魔力。
如果您想查看这是新加载还是回发,Page 类有一个IsPostBack
属性,当页面中的某些内容触发对同一页面的回发时,该属性为真。如果它是假的,那么这是一个新的请求,应该得到适当的处理。
除此之外,除了跟踪会话中访问的最后一页之外,我不知道有什么方法可以判断某人何时专门转到另一个页面(而不是仅仅刷新当前页面)。
*(它被定义为页面生命周期中的最后一个事件,但如果请求因任何原因提前终止,则可能不会触发。重定向和传输是主要示例。)
Unload
是ASP.NET 页面生命周期中的最后一个事件。
从文档:
为每个控件引发,然后为页面引发。在控件中,使用此事件对特定控件进行最终清理,例如关闭特定于控件的数据库连接。对于页面本身,使用此事件来完成最后的清理工作,例如关闭打开的文件和数据库连接,或者完成日志记录或其他特定于请求的任务。
但是,当重定向到另一个页面时,可能不会调用此方法。
此链接可能对您有用:页面生命周期概述。尽管您不能依赖正在运行的事件,但这是一个很好的指南,可以显示它们运行的顺序(和时间)。
如果您希望在页面离开时捕获事件,您可以使用 javascript 调用服务器方法。尽管这可行,但您似乎无法在服务器代码中停止该进程。查看我开始的最后一个线程:
在其中,我确实发布了一个示例,说明如何使用 javascript 检测页面即将离开并在此之前调用服务器方法。