js cookie 的使用方法记录用户浏览信息

cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

不同的浏览器对cookie的实现也不一样,但其性质是相同的。例如在Windows 2000以及Windows xp中,cookie文件存储于documents and settingsuserNamecookie文件夹下。通常的命名格式为:userName@domain.txt。

cookie机制将信息存储于用户硬盘,因此可以作为全局变量

 代码如下 复制代码

/*
*设置与获取Cookie
*/
var Cookie = {}
//写入Cookie,key为键,value是值
//duration过期时间(天为单位,默认1天)
Cookie.write = function (key, value, duration)
{
    Cookie.remove(key);
    var d = new Date();
    if (duration <= 0)
        duration = 1;
    d.setTime(d.getTime() + 1000 * 60 * 60 * 24 * duration);
    document.cookie = key + "=" + encodeURI(value) + "; expires=" + d.toGMTString() + ";path=/";
};
//移除Cookie,key为键
Cookie.remove = function (key)
{
    var d = new Date();
    if (Cookie.read(key) != "")
    {
        d.setTime(d.getTime() - (86400 * 1000 * 1));
        document.cookie = key + "=;expires=" + d.toGMTString();
    }
};
//读取Cookie,key是键
//不存在返回空字符串""
Cookie.read = function (key)
{
    var arr = document.cookie.match(new RegExp("(^| )" + key + "=([^;]*)(;|$)"));
    if (arr != null)
        return decodeURIComponent(arr[2]);
    return "";
};

实例

要用到2个js文件,history.js,关键的聊天记录保存和读取代码。json.js,对json进行处理。

 代码如下 复制代码

var addHistory=function(num,id){
    stringCookie=getCookie('history');
    var stringHistory=""!=stringCookie?stringCookie:"{history:[]}";
    var json=new JSON(stringHistory);
    var e="{num:"+num+",id:"+id+"}";
    json['history'].push(e);//添加一个新的记录
    setCookie('history',json.toString(),30);
}
//显示历史记录
var DisplayHistory=function(){
    var p_ele=document.getElementById('history');
     while (p_ele.firstChild) {
      p_ele.removeChild(p_ele.firstChild);
     }

    var historyJSON=getCookie('history');
    var json=new JSON(historyJSON);
    var displayNum=6;
    for(i=json['history'].length-1;i>0;i--){
        addLi(json['history'][i]['num'],json['history'][i]['id'],"history");
        displayNum--;
        if(displayNum==0){break;}
    }
}
//添加一个li元素
var addLi=function(num,id,pid){
    var a=document.createElement('a');
    var href='product.action?pid='+id;
    a.setAttribute('href',href);
    var t=document.createTextNode(num);
    a.appendChild(t);
    var li=document.createElement('li');
    li.appendChild(a);
    document.getElementById(pid).appendChild(li);
}
//添加cookie
var setCookie=function(c_name,value,expiredays)
{
    var exdate=new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    cookieVal=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
//    alert(cookieVal);
    document.cookie=cookieVal;
}
//获取cookie
function getCookie(c_name)
{
    if (document.cookie.length>0)
      {
      c_start=document.cookie.indexOf(c_name + "=")
      if (c_start!=-1)
        {
        c_start=c_start + c_name.length+1
        c_end=document.cookie.indexOf(";",c_start)
        if (c_end==-1) c_end=document.cookie.length
//        document.write(document.cookie.substring(c_start,c_end)+"<br>");
        return unescape(document.cookie.substring(c_start,c_end))
        }
      }
    return ""
}

json数据如下

 代码如下 复制代码
var JSON = function(sJSON){
    this.objType = (typeof sJSON);
    this.self = [];
    (function(s,o){for(var i in o){o.hasOwnProperty(i)&&(s[i]=o[i],s.self[i]=o[i])};})(this,(this.objType=='string')?eval('0,'+sJSON):sJSON);
}
JSON.prototype = {
    toString:function(){
        return this.getString();
    },
    valueOf:function(){
        return this.getString();
    },
    getString:function(){
        var sA = [];
        (function(o){
            var oo = null;
            sA.push('{');
            for(var i in o){
                if(o.hasOwnProperty(i) && i!='prototype'){
                    oo = o[i];
                    if(oo instanceof Array){
                        sA.push(i+':[');
                        for(var b in oo){
                            if(oo.hasOwnProperty(b) && b!='prototype'){
                                sA.push(oo[b]+',');
                                if(typeof oo[b]=='object') arguments.callee(oo[b]);
                            }
                        }
                        sA.push('],');
                        continue;
                    }else{
                        sA.push(i+':'+oo+',');
                    }
                    if(typeof oo=='object') arguments.callee(oo);
                }
            }
            sA.push('},');
        })(this.self);
        return sA.slice(0).join('').replace(/[object object],/ig,'').replace(/,}/g,'}').replace(/,]/g,']').slice(0,-1);
    },
    push:function(sName,sValue){
        this.self[sName] = sValue;
        this[sName] = sValue;
    }
}

html代码

 代码如下 复制代码

<script type="text/javascript" src="../js/json.js"></script>
<script type="text/javascript" src="../js/history.js"></script>
<ul id="history">
</ul>
<script>
addHistory(15810782304,2);
addHistory(64654665,2);
addHistory(6843212,2);
addHistory(84984432521,2);
setInterval("DisplayHistory()",1000);
</script>

时间: 2024-08-29 07:58:45

js cookie 的使用方法记录用户浏览信息的相关文章

JS基于cookie实现来宾统计记录访客信息的方法_javascript技巧

本文实例讲述了JS基于cookie实现来宾统计记录访客信息的方法.分享给大家供大家参考.具体如下: 这里使用JavaScript记录访客的来宾信息,记录是第几次来访,显示的信息有:您的名字;您浏览该网页的次数;您上次浏览网页的时间.可以更改姓名. 运行效果如下图所示: 具体代码如下: <html> <head> <title>记录客户信息</title> <script language="JavaScript"> <!

代码-求大神指导!!!!!如何实现记录用户浏览数,将浏览的类型记录下来,根据次数形成用户标签来做推广

问题描述 求大神指导!!!!!如何实现记录用户浏览数,将浏览的类型记录下来,根据次数形成用户标签来做推广 我做的是一个o2o的活动网站,线上报名活动,同时线上有论坛 我希望根据用户经常报名的活动类型或者参与的论坛版块记录下这些浏览数, 然后在数据库表里将浏览的主题和次数形成用户的标签,来做相应的活动或产品推广 我的活动表activity里有type就是活动的类型 帖子表tiezi有版块就是帖子的类型 然后要怎么记录用户的浏览数的代码如何实现, 然后是新建一张表里面有userid,浏览次数,标签呢

Javascript根据用户浏览信息判断是否为国内外IP

<meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript" language="javascript">   var browser_agent = navigator.useragent;     //Ϊie     if(browser_agent.indexof

服务器-log4j怎么处理多用户访问接口记录用户id

问题描述 log4j怎么处理多用户访问接口记录用户id 1.此项目作为一个android端的服务器 2.项目中有多个接口和方法 3.项目可能进行并发,多android端同时访问服务器的同一个接口 4.用log4j怎么记录是哪个用户访问了哪个接口 5.用其他方法记录用户调用了哪个接口也行 本人做android端的,服务器的实在不懂,求大神教教,跪谢! 解决方案 http://www.iteye.com/topic/378077

android SharedPreferences详解(android存储用户状态信息方法)

在andorid很多应用开发中都需要记录用户登录信息,使用静态变量手机关机用户状态清除,解决方法是使用SharedPreferences存储android用户信息. 一.SharedPreferences基础知识介绍 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Activity对象的getPreferences()方法 两种方式的区别: 调用Context对象的getSharedPreferences(

win7系统禁止显示用户登录信息的设置方法

  win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好.比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号.虽然此功能可以方便查看上次登录的具体信息,但为了防止信息泄露,保障系统安全信息,我们可以把显示用户登录信息的功能禁用掉,那么应该如何禁用掉呢?下面就跟小编一起来了解下吧! 方法如下: 1.按"win+r"组合键打开"运行"选项,输入"gpedit.msc"

jquery使用Cookie和JSON记录用户最近浏览历史_jquery

在一些电商网站,有"商品浏览历史记录"这一功能,一些视频类.小说类的网站也能记录用户最近的浏览历史.本文将使用Cookie以及JSON来讲解如何实现这一功能. Cookie可以用来记录客户端用户ID.密码.浏览过的网页.停留的时间等信息,jQuery提供了一个cookie插件,能非常方便的读写cookie信息.基本流程: 1.获取文章详情页面文章的标题和页面地址: 2.获取浏览历史cookie信息,判断如果浏览历史的cookie中已经存在当前文章的浏览记录,则不进行任何操作: 3.如果

JS操作COOKIE实现备忘记录的方法_javascript技巧

本文实例讲述了JS操作COOKIE实现备忘记录的方法.分享给大家供大家参考,具体如下: 具体涉及JS针对cookie的写入与获取操作,代码如下: function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start = c_start + c_name.length + 1;

PHP Cookei记录用户历史浏览信息的代码_php实例

[基础] Cookie常用方法: $_COOKIE['RecordLuHuiDUDU'] 得到Cookie setcookie('RecordLuHuiDUDU',",time()-3600*24*30); setcookie(字段名,数据,过期时间); 设置Cookie [注意] 重新设置Cookie需要使之前的Cookie失效,删除Cookie也是同样的方法: setcookie('RecordLuHuiDUDU',",time()-3600*24*30); [代码示例] /**