2015-06-05 30 views
1

使用ajax,我使得用戶在停留在同一頁面上10秒後獲得註銷成爲可能。請記住,10秒僅用於測試目的。但是,如果用戶在10秒鐘之前關閉瀏覽器,則他們不會註銷。我想在他們退出瀏覽器時將它們註銷,但我還沒有弄清楚,即使我這樣做,退出瀏覽器會帶來什麼後果?如果他們只是在有其他選項卡打開的情況下關閉選項卡,它會計數嗎?如果他們有2,3個或更多瀏覽器同時打開會怎樣?如何確定所有這些打開的瀏覽器在退出之前退出?使用ajax或瀏覽器退出時自動註銷PHP

test1.php

<?php 

include('ajax.php'); 
sleep(10); 

?> 

<html> 
<body onload = "ajax('test2.php','output',10000)"> 
<div id="output" /> 
</body> 
</html> 

test2.php

<?php 

include('connect.php'); 
include('functions.php'); 

ud("login = 'false'/userLogin/where username = '$username'"); 

?> 
+0

您認爲卸載方法適合您嗎? https://api.jquery.com/unload/ – wrxsti

+0

劃痕,我認爲它已被棄用。但是onBeforeUnload應該還是不錯的。 http://www.w3schools.com/jsref/event_onbeforeunload.asp – wrxsti

+0

@wrxsti退出瀏覽器需要什麼?如果他們只是在有其他選項卡打開的情況下關閉選項卡,它會計數嗎?如果他們有2,3個或更多瀏覽器同時打開會怎樣?如何確定所有這些打開的瀏覽器在退出之前退出? – iscattered

回答

1

onBeforeUnload事件應該爲你工作。

佔地面積:

  • 關閉標籤(無論有多少標籤是打開的)
  • 退出瀏覽器
  • 從頁面
  • 導航離開刷新頁面

您可以將其用作內聯屬性,或者觸發ajax函數來通知服務器。有幾種方法可以完成你正在尋找的東西,但是我必須注意到我從來沒有嘗試過你正在嘗試的東西。我只是從我讀過的內容來談。

這是一些other sources on SO as well

希望這會有所幫助!

+0

我需要檢查他們是否在過去10秒內活躍。我可以使用AJAX來檢查它們是否在最近10秒內處於活動狀態。如果他們瀏覽或刷新頁面,則會重置計數器,並讓我知道他們在最近10秒內一直處於活動狀態。但是,如果他們在10秒內什麼都不做,他們會自動註銷。 – iscattered

+0

如果他們關閉了瀏覽器,或者退出使用AJAX監控其進度的選項卡,它將不再監視其進度,因此他們的計數器將不會更新,因此我不知道他們是否已經活動。如果他們關閉了標籤頁或瀏覽器,我不能將它們註銷,因爲如果他們有多個標籤或瀏覽器打開我的網站?然後,我只想在他們關閉所有人時將他們註銷。 – iscattered

+0

這可能是相當的任務,但這可能是該解決方案的開始。不幸的是,我正在回家的路上,但是當我到達那裏時,我會嘗試按照您嘗試完成的方式構建測試平臺。如果沒有人提出更快的解決方案,我會在更多時更新。 – wrxsti