我刚发现以下内容(通过为客户端和服务器端代码设置多个断点):
如果你有一个window.onunload
处理程序 - 它将在浏览器将http请求发送到新页面后执行。
我刚刚使用Chrome和Firefox进行了测试。
为什么?您认为这种奇怪行为的原因是什么?
PS。以下是我发现这一点的方法:我有一个卸载处理程序,它通过ajax保存了一些数据。然后我发现我正在导航的新页面仍然显示来自数据库的旧数据。这让我想到了......
答案 0 :(得分:1)
HTML规范有一个Navigating across documents部分,用于描述您在浏览器中导航到新页面时的过程(例如,通过关注链接)。说的步骤
在获取新文档之后才会执行卸载当前条目的Document对象,并将recycle参数设置为false。
。
这似乎是因为跟随链接可能并不总是导致卸载当前文档。例如,如果回复包含Content-disposition: attachment
,则会下载链接的目标,但不会卸载当前页面。