【发布时间】:2020-03-20 05:35:39
【问题描述】:
我正在尝试为我的网站创建自己的分析脚本,为此我尝试了一种方法来创建 userID 和 sessionID。
但我不确定我是否做得正确。
我正在尝试:
-
检查用户是否设置了用户ID - 如果没有设置。
-
检查用户是否有 sessionID - 它没有设置它。
-
userID 设置为跟随用户,用户在多次访问中继续持有 userID,其中 sessionID 对于每次访问都是唯一的。
if(getCookie('yb_uid') != null) { 如果(getCookie('yb_sid')!= null){ setCookie('yb_uid', getCookie('yb_uid'), 730); setSessionCookie(getCookie('yb_sid')); } 别的 { setCookie('yb_uid', getCookie('yb_uid'), 730); setSessionCookie(setSID()); } } 别的 { setCookie('yb_uid', setUID(),730); setSessionCookie(setSID()); } if(getCookie('yb_sid') == null || getCookie('yb_sid') == '未定义' || !getCookie('yb_sid') ) { setSessionCookie(setSID()); }
函数 setUID() { return "ybID#"+_setID(5)+"-"+_setID(5)+"-"+Date.now(); } 函数 setSessionCookie(值) { var now = new Date(); var分钟= 30; now.setTime(now.getTime() + (分钟 * 60 * 1000)); document.cookie = "yb_sid=" + value + "; max-age="+now.toUTCString()+"; expires="+now.toUTCString()+"; path=/"; } /设置会话 cookie/ 函数 getCookie(名称) { var re = new RegExp(name + "=([^;]+)"); var value = re.exec(document.cookie); 返回(值!= null)? unescape(值 [1]):空; } /* 获取 cookie 值 / 函数_setID(长度){ 变量结果 = ''; var 字符 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; var charactersLength = characters.length; for(var i = 0; i 结果 += characters.charAt(Math.floor(Math.random() * charactersLength)); } 返回结果; } 函数 setSID(){ var ts = Math.round(+new Date()+Math.random()/1000); 返回 ts; } 函数 setCookie(名称、值、天数){ 如果(天){ var date = new Date(); date.setTime(date.getTime()+days246060*1000); var expires = "; max-age="+date.toGMTString()+" expires=" + date.toGMTString(); } 别的 { var过期=“”; } document.cookie = name+"=" + value+expires + ";path=/"; }
也许这有更简单的脚本编写方法?
【问题讨论】:
标签: javascript session analytics userid