博客项目之设计访客统计
分類統計
需求:
統計用戶點擊這三個分類的次數,用來分析用戶喜歡哪些話題。
實現原理:
通過給a標簽設置一個背景圖片屬性,當點擊的時候發送一條請求給服務器。
服務器端:
app.get('/stat',routes.stat);數據庫:
設置相應的幾個字段
接著處理相應的請求,如下
請求的參數就是對應的key,因此只需要先將對應的數據先查詢出來,然后在其基礎上 + 1 即可。
對應的數據表
完。
統計首頁用戶請求來源
如果懂點HTTP該有多好,那是很久以后才明白的。
HTTP中的請求頭部有一個referer屬性,這個屬性記錄著用戶從哪個頁面過來的,因此只需要在服務器腳本中寫上這么一句就可以了。
nodejs中的
req.headers.referer可以用來獲取來源。
在數據中查到的數據
完。
統計用戶訪問量
思路:
通過獲取用戶的IP地址來統計訪問量
實現方法:
nodejs通過如下可以獲取到用戶的ip
req.connection.remoteAddress數據庫設計思路
[{visitorip:["127.0.0.1","162.124.0.24","182.150.1.56"],date:currentDate} ]currentDate為當天的日期,將同一天訪問的ip,都添加到同一個數組中,否則新建一個對象。
實現過程
查詢當天有沒有相關的數據
false
新建一個對象,將對應的數據插入進去
true
在原數據的基礎上再添加一條,接著將這個新數組更新到數據庫中
一些亂想
在添加到數據庫之前,并沒有過濾重復IP,這樣的原因是:這些重復的數據也許有其他用處。
能保留完整的數據盡量保留完整,而過濾應該是單獨考慮的事。
用戶訪問量統計
獲取前幾天的訪問量將數組倒序一些即可,因為mongodb后添加的數據越往后。
這里的訪問量并不包括重復的IP,因此通過map方法將所有數據通過Set對象過濾,再取它的長度即可。
獲取到的數據
結果
一些問題
這個設計中,關于統計都是通過客服端或服務器來計算的,并沒有將這些計算的結果單獨設計一個字段,如果數據量較大的情況下,會不會出現什么問題,這是值得思考的問題。
完。
轉載于:https://www.cnblogs.com/pssp/p/6096929.html
總結
以上是生活随笔為你收集整理的博客项目之设计访客统计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: theano 安装杂记
- 下一篇: |洛谷|分治|P2799 国王的魔镜