2012-11-24 43 views
1

我正在開發基於套接字的聊天項目。我將所有在線用戶的名稱存儲在數據庫中,以便可以檢查重複的用戶名。如果我們正在聊天,並且我們直接關閉了瀏覽器,那麼我的應用程序使用戶很容易脫機,但問題是當我們直接清除緩存內存時,AJAX調用從數據庫中刪除用戶的操作不會被調用。因此,即使我們清除了緩存並離線了,我們也會在線顯示給前端用戶,這意味着該條目仍然存在於數據庫中,因爲沒有啓動AJAX調用,並且我們直接清除了緩存。如何使用javascript捕捉緩存清除事件?

因此,任何人有關於如何使用JavaScript捕捉緩存清除事件的一些想法,請讓我知道。

我在這個問題上做了大量的搜索,但沒有發現。

任何建議將受理。

日Thnx提前.....

+1

沒有「緩存清除」事件。無法檢測用戶何時清除瀏覽器緩存。 – Lee

回答

1

你所要求的是不可能的(沒有辦法,當用戶從JavaScript清除瀏覽器緩存來檢測)。

您是否考慮過每隔兩次發送一次不可見的「ping」(如1分鐘選擇一個閾值),並且如果兩個用戶沒有收到ping(閾值+較小的閾值),將考慮另一個用戶離線(或更強大地發送請求另一個「我還在這裏」ping)。

+0

thnx ascii-lime,對於你的建議,但這個解決方案似乎並不適合我的問題,因爲我已經提到聊天是通過套接字完成的,而用戶名是從數據庫中提取的.... Thnx再次 –

+0

@RaviDalal也許你可以讓用戶每次ping數據庫所在的服務器,然後如果用戶無法ping通一段時間,你可以從數據庫中刪除它們。 – Paulpro

+0

這是唯一可靠的方法。 – goat