我想有一个JavaScript函数调用页面加载和卸载,它将设置和取消设置会话变量。目前的JavaScript(与PHP线)看起来像这样(用了jQuery)
window.onbeforeunload = function() {
$.post('Example.php?y=".$id."&dir=0');
}
$(document).ready(function() {
$.post('Example.php?y=".$id."&dir=1');
});
这些都包含在一个PHP脚本,$ id为传递到页面的一个变量。 Example.php是一个使用ajax调用的脚本,它只需将变量$ id添加到作为$ _SESSION变量存储的数组(如果dir = 1),并在dir = 0时从数组中除去该变量。
问题是,这只是有时按预期工作。当我加载页面时,会话数组总是正确更新。当我卸载页面时,它有时会起作用,有时不起作用。我的猜测是,因为这些是异步函数,变量是由.ready函数调用,在页面卸载后设置的。但即使我让页面坐了一会儿,然后卸载它,这种不一致仍然存在。有什么我在卸载功能做错了吗?
尝试设置AJAX:在后呼叫
使用jQuery的
$(window).unload()
构建试过了,这只是没有工作假的。使用谷歌浏览器
请注明信息,如果将卸载的帖子发送到服务器,则应该在服务器日志中包含此信息。 –