2013-03-09 103 views
1

我想創建一種方式來跟蹤用戶訪問頁面的次數。JavaScript cookie,跟蹤訪問

問題是,如果自上次訪問以來已超過30分鐘,我只想增加cookie訪問次數。

我怎麼能這樣做?

現在這是我必須設置和獲取餅乾:

getCookie('xVisitors'); 
setCookie('xVisitors', 1, 120); 


function setCookie(b, c, e) { 
    var i = ""; 
    e > 0 && (i = new Date, i.setTime(i.getTime() + e * 6E4), i = "; expires=" + i.toGMTString()); 
    e = ""; 
    document.cookie = b + "=" + c + i + "; path=/;" + e 
}; 

function getCookie(b) { 
    for (var c = document.cookie.split(";"), e = 0; e < c.length; e++) { 
     for (var i = c[e]; i.charAt(0) == " ";) i = i.substring(1, i.length); 
      if (i.indexOf(b) == 0) return i.substring(b.length + 1, i.length); 
     } 
    return ""; 
} 
+0

存儲與最後一次更新的另一種餅乾。然後檢查30分鐘是否已經過去,如果是的話再次增加'xVisitors'。 – eandersson 2013-03-09 13:42:34

+0

該代碼的外觀如何? – Alosyius 2013-03-09 13:43:10

+0

看看這個答案。簡單地使用它來存儲和比較日期http://stackoverflow.com/questions/4503901/javascript-if-time-930-then – eandersson 2013-03-09 13:45:48

回答

0
var cTime = new Date().getTime(); 
var numVisits = 1; 
var xVisitors = getCookie('xVisitors').split('|'); 
if (typeof xVisitors[1]!='undefined') { 
    numVisits = ((cTime-parseInt(xVisitors[1])) > (30*60)) ? (xVisitors[0]+1) : xVisitors[0]; 
} 
setCookie('xVisitors',numVisits+"|"+cTime,120);