2010-06-03 44 views
1

我知道的: -我們可以使用Ajax從javascript更改數據庫。所以,只要我們按下標題欄上的'X'按鈕,它就會調用「onbeforeunload」事件。通過這個事件,我們可以更改數據庫。按下'X'按鈕後數據庫更改

但在我的情況下,我只想改變用戶的狀態,當用戶點擊'X'按鈕。不是在更改頁面的情況下。因爲更改頁面正在卸載頁面。並關閉頁面也卸載頁面(盡我所知)。

有什麼辦法來區分關閉頁面和從一個頁面移動到其他頁面?

我想用它來改變用戶的狀態(即登錄/註銷),只要他按下十字按鈕。

我不想在用戶更改頁面時設置狀態「註銷」。 當用戶'X'按鈕時,我想設置狀態「註銷」。

Plese幫我。

+0

'onbeforeunload'在大多數瀏覽器中不能完全正常工作,所以不要依賴此功能 – Starx 2010-06-03 08:13:08

回答

0

在JavaScript中,您不能在由於退出而導致卸載和卸載導致卸載之間產生差異。

你可以做什麼:

  • 在每個卸載,把註銷
  • 在每一頁上,如果註銷小於X很久以前,除去註銷。

這樣,當用戶從一個頁面瀏覽到另一個頁面時,「其他」頁面將看到用戶並取消註銷。注意:不要依賴javascript進行'註銷' - 用戶可以禁用它,或者由於各種原因它可能會失敗。有一個「最後一次點擊」時間戳可能很有用,如果最後一次點擊太早,則認爲用戶已登錄。

+0

是的,@Konerak,您是對的。但是,你有什麼替代選項,我可以檢查用戶使用的事件。 實際上在每個頁面上使用數據庫可能會導致客戶端頁面上傳速度緩慢。所以,我試圖找到一種非常優化的方式,通過它我可以處理我的網站的登錄/註銷問題。 – 2010-06-03 07:47:55