PHP中奇怪的$\会话行为

PHP中奇怪的$\会话行为,php,javascript,jquery,Php,Javascript,Jquery,可能重复: 我目前(在我看来)在PHP中遇到了一个奇怪的问题 在页面卸载($(window.unload)中,jQuery向save.php发送同步post请求 它包含一些应保存在$\u会话[“data”]中的数据。当当前页面仍然显示时,我可以获取jqXHR对象,并使用alert()显示responseText中包含的一些测试字符串。但在下一页,这些数据还不可用。我只需要重新装填,一切都很好 在我看来,我的浏览器(Firefox/Chrome)在后台加载下一页,而post请求尚未完成。或者是$

可能重复:

我目前(在我看来)在PHP中遇到了一个奇怪的问题

在页面卸载(
$(window.unload
)中,jQuery向
save.php
发送同步post请求

它包含一些应保存在
$\u会话[“data”]
中的数据。当当前页面仍然显示时,我可以获取
jqXHR
对象,并使用
alert()
显示
responseText
中包含的一些测试字符串。但在下一页,这些数据还不可用。我只需要重新装填,一切都很好


在我看来,我的浏览器(Firefox/Chrome)在后台加载下一页,而post请求尚未完成。或者是
$\u会话有问题?

可能是将事件附加到
窗口。卸载
不是一个好主意。浏览器可能首先获取下一页,然后调用事件,在这种情况下,您看到的是未更改(尚未更改)。因此,您可以附加到导致导航的事件,而不是附加到卸载事件

例如:

  • 点击链接,取消默认行为,调用ajax save.php脚本,然后使用
    window.location.href
  • 附加到表单帖子,取消帖子,调用ajax,然后发布表单

希望有帮助

您能发布代码吗?请记住,现在浏览器都是预取网站。在用户考虑离开当前页面之前,下一个页面可能已经加载。我想这就是问题所在。有没有办法避免这种情况?