2010-06-06 37 views
1

我需要顯示在線訪問者的數量,但是選擇算法時出現問題! 也許我必須在DB中創建一個表格,在那裏我將存儲訪問者的IP地址和訪問時間!通過這樣我可以顯示ip地址的計數,這是時間> = NOW() - 10分鐘,例如...(「now() - 10分鐘」只是爲了顯示邏輯,我知道這不是一個功能:)計算在線訪問者數量?

這是goog的方式去?

請給我一個主意。

感謝

回答

1

我真的不知道你將如何使用AJAX來存儲數據......

我個人使用的數據庫解決方案。

我店user_id,last_seen,IP和網站的位置(但這不是隻需要計數)。

當用戶請求頁面刷新last_seen列並刪除大於x分鐘的所有條目NOW()-last_seen

0

跟蹤「訪問者」(而不是原始頁面請求,Web服務器應該自行跟蹤)是一門複雜的藝術。

正如您所描述的那樣,您可以存儲IP地址,但是如果訪問者使用的代理服務器每次頁面加載的頻率都高於其IP地址,那麼訪問者又該如何呢?那麼一組訪問者都使用相同的代理服務器,它們都使用相同的IP?

我的推薦:不要打擾自己做任何事情,並使用Google的免費Analytics服務。它會跟蹤訪問者,瀏覽器,流量來源以及您可能想知道誰在查看您的網站的任何其他內容。

+1

我想他只是想知道在線用戶的數量,他不希望將其用於網站統計。 – nico 2010-06-06 14:58:21

-1

如果您預計網站將有大量的遊客,查詢可以使頁面每10分鐘相當緩慢的一個用戶...

如果是的話,我會建議寫一個CLI腳本,將清理舊的條目並在cronjob中運行它。這樣用戶不會注意到任何延遲,因爲parsetime將花在CLI上。

0

是的,算法是o.k.但一些更正

也許你想先刪除所有過時的記錄,然後只剩下其餘的。
10分鐘太多了。 1-3是用戶在頁面上花費的平均時間。
AJAX項目很有趣,但它與存儲無關。您需要更多關於客戶端 - 服務器應用程序術語的教育。 AJAX是運輸,而不是存儲。

+0

當我寫ajax,我的意思是使用JavaScript,將數據存儲到數據庫:) – Simon 2010-06-06 19:09:34