javascript實現(xiàn)用戶點擊數(shù)量統(tǒng)計
在微信上做一次推廣活動,頁面共計三個按鈕,需要分別統(tǒng)計點擊次數(shù),pc上的相關(guān)統(tǒng)計用的是“百度統(tǒng)計”,因為H5活動頁的時效性等原因,并沒有使用百度統(tǒng)計,而是自己實現(xiàn)一個簡單的統(tǒng)計小方案:前端點擊時請求一個空白小gif圖,帶有參數(shù),后端同事根據(jù)nginx請求日志做統(tǒng)計,通過在cookie中存入一個不會重疊的時間戳作為key值來區(qū)分是否同一用戶(uv)。
請求的圖片存在七牛中,是固定不變的,主要變化是后面兩個參數(shù):用戶標(biāo)識uid和按鈕標(biāo)識,其中生成不重復(fù)(把重復(fù)率降到最低)的用戶標(biāo)識很有意思。
時間戳用new Date().getTime()得出一個13位的“隨機數(shù)”,精確到毫秒,但萬一同一毫秒有兩個以上用戶點擊呢?于是再嚴(yán)謹(jǐn)一些,用for循環(huán)在隨機一個5位字符串拼接,這樣的重復(fù)率絕對夠用:
uid = new Date().getTime(); var randomNumber = ''; for(var i = 0 ; i < 5 ; i ++){ randomNumber += new String (Math.floor(Math.random() * 10)); } uid = uid + randomNumber;
下面是具體邏輯代碼,當(dāng)網(wǎng)頁中已有請求圖片時,更改url的參數(shù)也一樣能從新發(fā)起一個get請求,避免每次點擊都append一張圖片。這種實現(xiàn)方法感覺比點擊發(fā)送ajax更加方便。
statistics: function(position){ var pic = "http://wx.daigj.com/notification/statistics/p.gif"; var uid = util.readCookie("uid"); var imgLength = $("#statistics-img").length; if(uid){ if(imgLength == 0){ $('body').append('<img id="statistics-img" src="' + pic + '?uid='+ uid + '&position='+ position +'"/>'); }else{ $("#statistics-img").attr("src",pic+"?uid="+uid+"&position="+position); } }else{ uid = new Date().getTime(); var randomNumber = ''; for(var i = 0 ; i < 5 ; i ++){ randomNumber += new String (Math.floor(Math.random() * 10)); } uid = uid + randomNumber; util.createCookie("uid",uid); $('body').append('<img id="statistics-img" src="' + pic + '?uid='+ uid + '&position='+ position +'"/>'); } }
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- js實現(xiàn)統(tǒng)計字符串中特定字符出現(xiàn)個數(shù)的方法
- JavaScript統(tǒng)計字符串中每個字符出現(xiàn)次數(shù)完整實例
- javascript實現(xiàn)的網(wǎng)站訪問量統(tǒng)計代碼
- javascript實現(xiàn)動態(tài)統(tǒng)計圖開發(fā)實例
- JavaScript統(tǒng)計網(wǎng)站訪問次數(shù)的實現(xiàn)代碼
- JSP實現(xiàn)網(wǎng)頁訪問統(tǒng)計
- JavaScript實現(xiàn)網(wǎng)站訪問次數(shù)統(tǒng)計代碼
- JS基于cookie實現(xiàn)來賓統(tǒng)計記錄訪客信息的方法
- Javascript實現(xiàn)字?jǐn)?shù)統(tǒng)計
- JS實現(xiàn)統(tǒng)計復(fù)選框選中個數(shù)并提示確定與取消的方法
相關(guān)文章
微信小程序?qū)崿F(xiàn)自定義modal彈窗封裝的方法
這篇文章主要介紹了小程序自定義modal彈窗封裝實現(xiàn)方法,本文通過實例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-06-06JavaScrip調(diào)試技巧之?dāng)帱c調(diào)試
本篇文章給大家介紹javascript調(diào)試技巧之?dāng)帱c調(diào)試,主要介紹使用Firebug、debugger、debugger在程序中加入斷點調(diào)試等,但是這些調(diào)試技巧都不借助于瀏覽器之外的工具,其他瀏覽器主要是opera、safari、chrome和ie8,感興趣的小伙伴一起看看吧2015-10-10bootstrap table動態(tài)加載數(shù)據(jù)示例代碼
本篇文章主要介紹了bootstrap table動態(tài)加載數(shù)據(jù)示例代碼,可以實現(xiàn)點擊選擇按鈕,彈出模態(tài)框,加載出關(guān)鍵詞列表,有興趣的可以了解一下。2017-03-03javascript 循環(huán)調(diào)用示例介紹
循環(huán)調(diào)用,如果已經(jīng)獲取到了結(jié)果,則退出循環(huán),下面有個不錯的示例,感興趣的朋友可以嘗試操作下2013-11-11