簡體   English   中英

Javascript加載/卸載以獲取PHP $ _SESSION變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM