2011-07-05 73 views
0

我試圖做一個帖子查看計數器,迄今爲止它的容易,但我有以下問題,當用戶重新加載頁面它再次更新,我想只跟蹤原料,但不是重載。我怎麼能做到最好?設置一個cookie?頁面查看/發佈查看計數器

的網站:該網站擁有超過10K +崗位,林不知道,如果有一個cookie來實現將工作:)

而且有關更新的數據庫,我應該有更新的低優先級做實時,或者像每5分鐘一次保存數據和處理?

Gimma請輸入一些我如何做到這一點。謝謝

+0

我找到了一個很好的解決方案: 我登錄IP +後ID在陣列中,5分鐘後我所說的腳本,更新數據庫,並與ARRAY_UNIQUE我過濾重複出來,不是最好的解決辦法,但應適用於我謝謝爲您輸入:) – MasterX

+0

也使用session_id,否則如果人們從同一辦公室訪問,那麼您將只能得到每個辦公室的一次訪問 –

回答

0

拿獨特的用戶比較ip |會話Id |如果再相同值的組合存在不`噸插入或更高版本,採取獨特的價值觀

+0

做了一些微妙的謝謝,檢查我的評論我的帖子:) – MasterX

0

你可以使用cookie來處理它,比如如果命中已更新,將cookie var UPDATED設置爲1。
但COOKIE的問題是任何人都可以編輯它,所以你也可以用SESSION試用它,因爲用戶不能編輯它。
DB我​​不是一個好選擇,你也可以試試Google Analytic

+0

SESSION與COOKIE鏈接;如果用戶擦除cookie,會話也會丟失。 – tucuxi

+0

我說沒有人可以編輯會話,我試圖說'沒有人可以改變他們的會話他們的價值' – Sourav

+0

編輯&刪除不同 – Sourav

0

另一個答案插入,但過程頁ID,從Page View Counter like on StackOverFlow建議,是

  • 加上「令牌資源」在您的頁面標題中,如<link href="https://stackoverflow.com/questions/246919/increment-view-count" type="text/css" rel="stylesheet" />。請注意,令牌資源應該是頁面特定的(由於路徑),並且所有現代瀏覽器都會緩存它們下載的資源文件。
  • 只有在重新下載令牌資源時,纔會增加計數器(可以使用apache的mod-rewrite保持整潔的URL,然後映射到您擁有的任何遞增計數器)。這避免了cookie或存儲[ip |會話|頁面]爲每個綜合瀏覽量,減少數據庫請求的數量;並避免了cookies的需要。

它和[ip |會話|頁面]組合再次攻擊(無論哪種情況,有人可以在不存儲cookie的情況下編寫一個請求資源或頁面的緊密循環)。但是,在計算所有請求時(由於NAT,您不能依賴每個人的唯一IP),沒有安全 - 失敗的方法來避免濫用。