javascript實現使用者點擊數量統計的教程

來源:互聯網
上載者:User

在微信上做一次推廣活動,頁面共計三個按鈕,需要分別統計點擊次數,pc上的相關統計用的是“百度統計”,因為H5活動頁的時效性等原因,並沒有使用百度統計,而是自己實現一個簡單的統計小方案:前端點擊時請求一個空白小gif圖,帶有參數,後端同事根據nginx請求日誌做統計,通過在cookie中存入一個不會重疊的時間戳記作為key值來區分是否同一使用者(uv)。

請求的圖片存在七牛中,是固定不變的,主要變化是後面兩個參數:使用者標識uid和按鈕標識,其中產生不重複(把重複率降到最低)的使用者標識很有意思。

時間戳記用new Date().getTime()得出一個13位的“隨機數”,精確到毫秒,但萬一同一毫秒有兩個以上使用者點擊呢?於是再嚴謹一些,用for迴圈在隨機一個5位字串拼接,這樣的重複率絕對夠用:

uid =newDate().getTime();
varrandomNumber ='';
for(vari = 0 ; i < 5 ; i ++){
 randomNumber +=newString (Math.floor(Math.random() * 10));
}
uid = uid + randomNumber;

下面是具體邏輯代碼,當網頁中已有請求圖片時,更改url的參數也一樣能從新發起一個get請求,避免每次點擊都append一張圖片。這種實現方法感覺比點擊發送ajax更加方便。

statistics:function(position){
 varpic ="yun_qi_img/p.gif";
 varuid = util.readCookie("uid");
 varimgLength = $("#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 =newDate().getTime();
 varrandomNumber ='';
 for(vari = 0 ; i < 5 ; i ++){
  randomNumber +=newString (Math.floor(Math.random() * 10));
 }
 uid = uid + randomNumber;
 util.createCookie("uid",uid);
 $('body').append('<img id="statistics-img" src="'+ pic +'?uid='+ uid +'&position='+ position +'"/>');
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.