2016-05-23 121 views
0

我已經創建了,我有兩種類型的用戶的系統中的PHP腳本: 正宗用戶 演示用戶運行在關閉瀏覽器

正品的用戶均是現實生活的用戶的用戶,所有數據屬於這些用戶是需要的。 演示用戶是虛擬用戶創建的用戶,僅用於演示目的。不需要此類用戶的信息。

當真實的用戶登錄時,他執行操作並保存其數據並註銷。所有信息都保存在數據庫中。

當演示用戶登錄時,他執行相同的操作並註銷。我創建了一個腳本,用於在註銷時刪除演示用戶的所有數據。

當演示用戶沒有註銷但只是關閉瀏覽器時出現問題。刪除腳本不會運行,它出現在「註銷頁面」上。

我想要在瀏覽器關閉時運行腳本並刪除成功。

+4

它會是一個問題,使用cron作業來刪除不活動的用戶? – rsz

+0

我認爲cron工作計劃。意味着具體time.Not在行動 – Francis

+0

[beforeunload](https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload)是最好的,但這就是說,如果頁面遠離瀏覽,而不僅僅是瀏覽器關閉。國際海事組織我不會依靠用戶瀏覽器來解決這個問題。 rsz提到的cron是一個更好的選擇。 – castis

回答

1

您可以使用後臺進程(cron)[在基於unix的服務器上查找crontab],例如每隔5分鐘執行一次,並刪除所有不需要的數據。

如果你不想使用cron,你也可以使用一個函數來刪除你在每次登錄或註銷時不需要的所有數據,但請記住,這會影響用戶體驗在有大數據的情況下加載次數。

我建議第一種方法,但也許第二種方法對你更容易。

;)

0

在Javascript中,你可以得到onunload event,頁面退出之前調用。在用戶退出該頁面之前,您可以對.php腳本執行AJAX請求,以便在用戶退出時銷燬服務器上演示的所有數據,即使他沒有手動註銷也是如此。

+3

這會叫它總是?你如何區分「正在加載不同頁面的用戶」的「離開用戶」? – rsz

+0

我認爲你必須手動完成。您可以在單擊頁面上的鏈接時設置回調,當它是內部鏈接時,可以將布爾值設置爲「true」,例如,當它是外部鏈接時,則爲「false」。在啓動腳本來擦除數據之前,檢查布爾值是否設置爲「true」或「false」。這將適用於鏈接或表單,但不能在用戶重新加載頁面時使用。 – Olivier