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

 2023-09-10 阅读 24 评论 0

摘要:最近跟研发配合做了一个在登录,注册等相关页面统计用户ip来源、uv、pv。主要是根据当前的url,获取相关的参数,设置cookie值,然后根据页面输出的相关数据跟cookie相关的匹配,进行操作,当用户登录或者注册成功的时候,再获取co

最近跟研发配合做了一个在登录,注册等相关页面统计用户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 转换函数。pv uv是什么意思。如果所获取的 cookie 有值,会在返回前传给 converter 函数进行转换。
选项对象。对象中可以有两个属性:converter 和 raw. raw 是布尔值,为真时,不会对获取到的 cookie 值进行 URI 解码。注:如果要获取的 cookie 键值不存在,则返回 undefined.例子:define(function() {var Cookie = require('cookie');// setupdocument.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 编码。曝光pv和曝光uv?例子: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_28qs = 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跨域解决问题等技术知识点。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/39960.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息