这个javascript代码有效吗?效率高吗?正在尝试创建javascript用户ID和会话ID。不确定是否有用于此的有效代码

这个javascript代码有效吗?效率高吗?正在尝试创建javascript用户ID和会话ID。不确定是否有用于此的有效代码,javascript,session,analytics,userid,Javascript,Session,Analytics,Userid,我正在尝试为我的网站创建我自己的分析脚本,为此我尝试了一种创建userID和sessionID的方法 但我不确定我是否做对了 我正试图: 检查用户是否设置了用户ID-如果未设置 检查用户是否有sessionID-它没有设置它 userID设置为跟随用户,用户在多次访问中继续持有userID,其中sessionID对于每次访问都是唯一的 if(getCookie('yb\u uid')!=null){ if(getCookie('yb_sid')!=null){ setCookie('ybu

我正在尝试为我的网站创建我自己的分析脚本,为此我尝试了一种创建userID和sessionID的方法

但我不确定我是否做对了

我正试图:

  • 检查用户是否设置了用户ID-如果未设置

  • 检查用户是否有sessionID-它没有设置它

  • userID设置为跟随用户,用户在多次访问中继续持有userID,其中sessionID对于每次访问都是唯一的

    if(getCookie('yb\u uid')!=null){ if(getCookie('yb_sid')!=null){ setCookie('ybuid',getCookie('ybuid'),730); setSessionCookie(getCookie('yb_-sid')); }否则{ setCookie('ybuid',getCookie('ybuid'),730); setSessionCookie(setSID()); } }否则{ setCookie('yb_-uid',setUID(),730); setSessionCookie(setSID()); } 如果(getCookie('yb_-sid')==null | | | getCookie('yb_-sid')=='undefined'| | |!getCookie('yb_-sid')) { setSessionCookie(setSID()); }

    函数setUID() { 返回“ybID#”+_setID(5)+“-”+_setID(5)+“-”+Date.now(); } 函数setSessionCookie(值) { var now=新日期(); var minutes=30;now.setTime(now.getTime()+(minutes*60*1000)); document.cookie=“yb_sid=“+value+”;max age=“+now.toutString()+”;expires=“+now.toutString()+”;path=/”; }/set会话cookie/ 函数getCookie(名称) { var re=new RegExp(name+“=([^;]+)”); var值=re.exec(document.cookie); 返回值(值!=null)?unescape(值[1]):null; }/*获取cookie值/ 函数_setID(长度){ var结果=“”; 变量字符='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; var charactersLength=characters.length; 对于(var i=0;i 结果+=characters.charAt(Math.floor(Math.random()*charactersLength)); } 返回结果; } 函数setSID(){ var ts=Math.round(+new Date()+Math.random()/1000); 返回ts; } 函数setCookie(名称、值、天数){ 如果(天){ 变量日期=新日期(); date.setTime(date.getTime()+days246060*1000); var expires=“;max age=“+date.togmString()+”expires=“+date.togmString(); }否则{ var=”; } document.cookie=name+“=”+value+expires+“path=/”; }


也许这有一种更简单的方法来编写脚本?

您是否尝试过UUID来生成用户id?

这是什么?从未听说过用于生成UUID的包。比如``const uuidv1=require('uuid/v1');uuidv1();//⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d``我希望避免使用第三方解决方案,因为这会影响文件加载时间和执行。当然,由您决定。我只是推荐了如何创建一个独特的id的方法。我不打算为它做任何广告。但它值得一看。请参阅下载和相关内容,更具说服力。我看了你的代码
setUID
setID
\u setID
,我觉得不错。但我没有读其他代码。从你的陈述来看,它应该是有效的。