有关cookie实现统计pv,uv的一些用法

最近跟研发配合做了一个在登录,注册等相关页面统计用户ip来源、uv、pv。主要是根据当前的url,获取相关的参数,设置cookie值,然后根据页面输出的相关数据跟cookie相关的匹配,进行操作,当用户登录或者注册成功的时候,再获取cookie,把cookie传给后台,最后删除cookie值。
我以前写js很少关于cookie相关的技术,所以对这方面的技术也不是太了解,在做这个项目之前,花费了一段时间去研究这些,本来想着用jQuery cookie插件呢,后来听同事说,我们公司其他项目大都是arale-cookie的组件,所以两个相关的组件,我都大致研究了一下,其实两者用起来差不多,都是设置、获取、删除cookie类的。
arale-cookie的用法说明:
Cookie 操作方法。

get Cookie.get(name, [options])

获取 cookie 值。options 参数可选,取值如下:

converter 转换函数。如果所获取的 cookie 有值,会在返回前传给 converter 函数进行转换。
选项对象。对象中可以有两个属性:converter 和 raw. raw 是布尔值,为真时,不会对获取到的 cookie 值进行 URI 解码。

注:如果要获取的 cookie 键值不存在,则返回 undefined.

例子:

define(function() {
    var Cookie = require('cookie');

    // setup
    document.cookie = 'foo=1';
    document.cookie = 'bar=2';

    Cookie.get('foo');
    // returns '1'

    Cookie.get('bar', function(s) { return parseInt(s); } );
    // returns 2
});

set Cookie.set(name, value, [options])

设置 cookie 值。参数 options 可选,可以有以下属性:path(字符串)、domain(字符串)、 expires(数值或日期对象)、raw(布尔值)。当 raw 为真值时,在设置 cookie 值时,不会进行 URI 编码。

例子:

define(function() {
    var Cookie = require('cookie');

    Cookie.set('foo', 3);

    Cookie.set('bar', 4, {
        domain: 'example.com',
        path: '/',
        expires: 30
    });
});
`

remove Cookie.remove(name, [options])

移除指定的 cookie.

例子:

define(function() {
    var Cookie = require('cookie');

    Cookie.remove('foo');

    Cookie.remove('bar', {
        domain: 'example.com',
        path: '/'
    });
});

功能实现的主要代码,首页是获取url后面的参数,由于url参数名称是固定的,所以写起来比较简单

当前的地址:http://work.XXXXXX.cn/?sfrom=1_28
var getArgs = function(){
        var args = [],
        //获取参数sform=1_28
            qs = location.search.length>0?location.search.substring(1):''; 
            var args = qs.split('='); 
        var item = [],
            items = args[1].split('_'),//把参数值分开,获取不同的值
            reg = new RegExp("[0-9]+"),
            suc =  items[1].match(reg); //28是user的id值,需要过滤到其后面的其他
        item.push(items[0],suc); //把获取的值放到一个数组里
        return item;
    }
    var userargs = getArgs();
    var userCookie = (userargs.join('_')); //cookie值以1_28形式保存,其实下划线前面代表的是类型,从登录或者注册入口
   Cookie.set('userCookie', userCookie, {
        domain: 'XXXX.cn',
        path: '/',
        expires: 7*60*60*1000
    });
//下面主要是根据获取的值在不同页面,把类型值传给后台验证,主要是跨域问题 ,采用了jsonp的格式
   if(USERPV){
       if(USERPV.suc ==0){ //suc代表的是否登录或者注册成功,type代表入口类型
           var type = userargs[0];
           if( USERPV.type==type){
               var chekUrl = 'http://my.op.XXXX.cn/pvip/index/sfrom/'+userargs.join("_");

               $.getJSON(chekUrl, 'callback=?', function(data) {
               })
           }
       } else if(USERPV.suc == 1){

           var cookieArr =Cookie.get('userCookie');
           var type = cookieArr[0];
           Cookie.remove('userCookie', {
               domain: 'gongchang.net',
               path: '/'
           });
           if( USERPV.type==type){
               var chekUrl = 'http://my.op.XXXX.cn/pvip/index/suc/1/sfrom/'+cookieArr;
               $.getJSON(chekUrl, 'callback=?', function(data) {

               })



           }

       }
    }
总结下来整个功能也就利用了cookie的设置,获取,删除等操作方法,url参数获取,ajax跨域解决问题等技术知识点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端岚枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值