[英]Javascript load/unload to get PHP $_SESSION variables
我想在頁面加載和卸載時調用一個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:false
使用$(window).unload()
jQuery構造進行了嘗試,但這種構造不起作用。
使用谷歌瀏覽器
$ .post是異步的; 這意味着當函數返回時,可能仍未發出請求。
嘗試同步發出請求:
$.ajax('Example.php..', {
async: false,
type: 'POST'
});
請參閱jQuery.ajax
文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.