簡體   English   中英

頁面瀏覽/帖子瀏覽計數器

[英]Page View / Post View Counter

我正在嘗試制作一個帖子視圖計數器,到目前為止它很容易,但是我有以下問題,當用戶重新加載頁面時它會再次更新,我只想跟蹤原始內容,而不是重新加載。 我怎樣才能做到最好? 設置一個cookie?

該站點:該站點有超過 10k+ 個帖子,我不確定,如果使用 cookie 完成此操作是否可行:)

關於更新數據庫,我應該以更新低優先級實時進行,還是像每 5 分鍾一樣保存數據和處理?

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

您可以使用 cookie,例如如果命中已更新,則將 cookie var UPDATED 設置為 1。
但是 COOKIE 的問題是任何人都可以編輯它,所以你也可以用 SESSION 嘗試它,因為用戶無法編輯它。
我認為 DB 不是一個好選擇,您也可以嘗試 Google Analytic

通過比較 ip 來獲取唯一用戶 | session 標識 | 如果存在相同值的組合,則頁面 ID 不插入或插入,但稍后通過獲取唯一值進行處理

另一個答案, 如 StackOverFlow 上的 Page View Counter建議的,是

  • 在您的頁面 header 中添加“令牌資源”,例如<link href="/questions/246919/increment-view-count" type="text/css" rel="stylesheet" /> 請注意,令牌資源應該是特定於頁面的(由於路徑),並且所有現代瀏覽器都會緩存它們下載的資源文件。
  • 僅在重新下載令牌資源時才增加您的計數器(您可以使用 apache 的 mod-rewrite 來保持整潔的 url,然后 map 到您擁有的任何遞增計數器)。 這避免了對 cookies 或存儲 [ip | session | page] 為每個頁面瀏覽量,減少數據庫請求的數量; 並避免了對 cookies 的需要。

它與 [ip | session | page] 組合對抗攻擊(在任何一種情況下,有人可以編寫一個緊密循環來請求資源或頁面而不存儲 cookie)。 但是在計算所有請求時沒有安全失敗的方法來避免濫用(因為 NAT,您不能依賴每個人的唯一 IP)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM