一、简介
编写一个js的sdk,用以嵌入待分析的页面中,当用户访问到该页面上时,自动调用该段js代码,获取用户浏览器上的cookie信息,拼装成一段session信息,发送到我的nginx服务器上。
二、执行流程
如图,用户访问页面时,首先判断用户的会话是否过期,未过期则调用pageView方法发送到nginx服务器,若过期,则判断是否第一次访问,是则创建用户标识并创建对话发送launch事件,不是则直接创建session发送pageView事件。
三、代码分析
1.CookieUtils
用于处理用户cookie信息,主要有get,set两个方法,set用于更新cookie,get用于获取cookie串中的所需值。
var CookieUtil={
get:function(name){
var cookieName = encodeURIComponent(name)+"=";
cookieStart = document.cookie.indexOf(cookieName);//找出cookie起始位置
cookieValue = null;
if(cookieStart>-1){
var cookieEnd = document.cookie.indexOf(";",cookieStart);//找出cookie结束位置
if(cookieEnd==-1){
cookieEnd = document.cookie.length;
}
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length, cookieEnd));
return cookieValue;//返回value值
},
set:function(name,value,expires,path,domain,secure){
var cookieText = encodeURIComponent(name)+"="+encodeURIComponent(value);
if(expires){
var expiresTime = new Date();
expiresTime.setTime(expires);//设置过期时间
cookieText += ";expires=" + expiresTime.toUTCString();
}
if(path){
cookieText += ";path=" + path;
}
if(domain){
cookieText += ";domain=" + domain;
}
if(path){
cookieText +&