`

JS创建和存储 cookie一些方法总结

    博客分类:
  • js
 
阅读更多

http://www.zgguan.com/zsfx/jsjc/5320.html

 

在js中cookie的操作与存储及清除cookie都与时间有关,我们只要把cookie过期时间进行有效的设置我们就可以控制它的存储了,下面我来给大家总结一下js中cookie的一些使用技巧

创建和存储 cookie


在这个例子中我们要创建一个存储访问者名字的 cookie。当访问者首次访问网站时,他们会被要求填写姓名。名字会存储于 cookie 中。当访问者再次访问网站时,他们就会收到欢迎词。

首先,我们会创建一个可在 cookie 变量中存储访问者姓名的函数:

 代码如下 复制代码

function Setcookie (name, value)

    //设置名称为name,值为value的Cookie
    var expdate = new Date();   //初始化时间
    expdate.setTime(expdate.getTime() + 30 * 60 * 1000);   //时间
    document.cookie = name+"="+value+";expires="+expdate.toGMTString()+";path=/";

   //即document.cookie= name+"="+value+";path=/";   时间可以不要,但路径(path)必须要填写,因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!~
}


上面这个函数中的参数存有 cookie 的名称、值以及过期天数。

在上面的函数中,我们首先将天数转换为有效的日期,然后,我们将 cookie 名称、值及其过期日期存入 document.cookie 对象。

之后,我们要创建另一个函数来检查是否已设置 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
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return ""
}

上面的函数首先会检查 document.cookie 对象中是否存有 cookie。假如 document.cookie 对象存有某些 cookie,那么会继续检查我们指定的 cookie 是否已储存。如果找到了我们要的 cookie,就返回值,否则返回空字符串。

最后,我们要创建一个函数,这个函数的作用是:如果 cookie 已设置,则显示欢迎词,否则显示提示框来要求用户输入名字。

 代码如下 复制代码

function checkCookie()
{
username=getCookie('username')
if (username!=null && username!="")
  {alert('Welcome again '+username+'!')}
else 
  {
  username=prompt('Please enter your name:',"")
  if (username!=null && username!="")
    {
    setCookie('username',username,365)
    }
  }
}

一个完整实例

 

 代码如下 复制代码

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>无标题文档</title>
<script type=”text/javascript”>
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
return unescape(document.cookie.substring(c_start,c_end))
}
}
return “”
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ “=” +escape(value)+
((expiredays==null) ? “” : “;expires=”+exdate.toGMTString())
}

function checkCookie()
{
username=getCookie(‘username’)
if (username!=null && username!=”")
{alert(‘Welcome again ‘+username+’!')}
else
{
username=prompt(‘Please enter your name:’,”")
if (username!=null && username!=”")
{
setCookie(‘username’,username,365)
}
}
}
</script>
</head>
<body onLoad=”checkCookie()”>

</body>
</html>


上面讲到了cookie的创建我们现在来看一个利用cookie保存浏览记录实例

浏览记录的显示是从cookie里读出来,然后解析成json,生成html元素。因为用户可能会同时打开好几个页面,这几个页面上可能都有浏览记录,为了使即使显示浏览记录,每秒中刷新一次。
要用到2个js文件,history.js,关键的聊天记录保存和读取代码。json.js,对json进行处理。

history.js

 代码如下 复制代码

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文件

 代码如下 复制代码

json.js 
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>

分享到:
评论

相关推荐

    jquery.cookie.js 以及用法 cookie读取与存储

    本文将详细探讨`jquery.cookie.js`的使用方法,包括如何读取和存储Cookie。 ### 1. 安装和引入 首先,你需要下载`jquery.cookie.js`文件,然后在HTML文档中通过`&lt;script&gt;`标签引入。确保jQuery库已经加载,因为`...

    JavaScript数据存储 Cookie篇

    JavaScript中的Cookie是客户端数据存储的一种常见方式,主要用来在用户浏览器端存储小量信息,尤其适用于维护用户会话状态。本文将深入探讨Cookie的基本概念、组成部分、操作方法以及相关注意事项。 1. **Cookie的...

    javascript创建和存储cookie示例

    ### JavaScript 创建和存储 Cookie 示例知识点 #### 1. Cookie 概述 Cookie 是网络技术中的一种机制,允许服务器在用户计算机上存储一些信息。当浏览器在未来的请求中访问同一个服务器时,服务器可以通过这个机制...

    js cookie存储+本地存储代码

    jQuery Cookie插件 新建:$.cookie('名称', '值'); 删除:$.cookie('名称', null); 获取URL参数 xxx=$.par('a') HTML5本地存储函数 by zjwpeter 创建 locstr('名字','值') 查询 a=locstr('名字') 删除 locstr('...

    jquery1.4.2.js和jquery.cookie.js

    总结,jQuery 1.4.2作为一款经典版本,提供了丰富的DOM操作和事件处理能力,而jQuery Cookie插件则弥补了JavaScript原生对Cookie操作的不足,两者结合,为开发者构建交互性强、用户体验优良的Web应用提供了便利。...

    什么是cookie?js手动创建和存储cookie

    JavaScript手动创建和存储cookie涉及以下步骤和概念: 1. 创建Cookie:使用JavaScript的document.cookie属性来创建cookie。通常,我们会定义一个函数,该函数接受cookie的名称、值和过期时间(天数)作为参数。然后...

    jquery管理cookie和form的js

    jQuery的Cookie插件(如:jquery.cookie.js)提供了一种简单的方式来创建、读取和删除cookie。以下是一些主要功能: 1. **创建Cookie**: 使用`$.cookie(name, value, options)`可以创建一个cookie,其中`name`是...

    JS cookie Java cookie regex 整理结果

    总结来说,JS和Java Cookie提供了在客户端和服务器端存储和读取数据的方法,而Regex则作为一种强大的文本处理工具,用于处理和验证Cookie的格式。掌握这些技术,对于Web开发人员来说至关重要,能够帮助他们构建更加...

    jquery.cookie.js包

    总结起来,`jquery.cookie.js`提供了一种方便的方式来处理客户端的Cookie操作,简化了诸如“记住密码”这样的功能的实现。在实际应用中,结合适当的加密和安全策略,我们可以为用户提供更便捷的体验,同时保证数据的...

    JS添加Cookie的例子

    在JavaScript(JS)中,Cookie是一种非常常见的技术,用于存储客户端的数据。Cookie主要由服务器端设置,然后由浏览器在每次请求该服务器时自动发送。在本文中,我们将深入探讨如何使用JavaScript来创建、读取、更新...

    IIS环境下和阿帕奇环境下 js的Cookie使用方法

    JavaScript中的Cookie是Web开发中常用的一种数据存储机制,它允许在客户端存储少量的数据。这篇教程将深入探讨在IIS(Internet Information Services)和Apache两种不同的Web服务器环境下,如何使用JavaScript来操作...

    cookiejs一个用于处理浏览器cookie的简单轻量级JavaScriptAPI

    Cookie.js是一个专为JavaScript开发者设计的轻量级库,主要用于管理和操作浏览器中的cookie。这个库的主要优点是它的简洁性和低资源占用,使得它成为处理cookie的理想选择,尤其适用于那些对性能和加载速度有较高...

    jquery.cookie.js 存取cookie例子

    `jQuery.cookie.js` 是一个方便的jQuery插件,它简化了JavaScript操作Cookie的过程。在这个实例中,我们将深入探讨如何使用`jquery.cookie.js`来实现Cookie的存取、删除和更新功能。 首先,我们需要在HTML文件(如`...

    javascript学习笔记(七)利用javascript来创建和存储cookie

    JavaScript中的Cookie是客户端存储数据的一种方式,它在用户浏览网页时被创建,并存储在用户的浏览器上。每当同一台计算机通过浏览器请求页面时,浏览器会自动将Cookie一同发送给服务器。Cookie通常用于跟踪用户状态...

    JS Cookie的操作

    这篇博客“JS Cookie的操作”将深入探讨如何利用JavaScript进行Cookie的创建、读取和删除,以及一些相关的实用技巧。 一、Cookie的基本概念 Cookie是由服务器端设置并发送到客户端(浏览器)的一小段文本信息,...

    cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip_js设置cookie值

    这两种方法都将创建一个名为"username"的Cookie,并将其HttpOnly属性设为true,禁止JavaScript访问。 **PHP设置HttpOnly Cookie** 在PHP中,可以通过`setcookie()`函数来设置Cookie,包括HttpOnly属性。下面的代码...

    js操作Cookie子键+Jquery调用Ajax方法执行后台操作

    总结来说,JS操作Cookie的子键和jQuery调用Ajax方法是Web开发中常见的技术,它们使得我们能够高效地处理用户交互和数据交换。通过理解并熟练运用这些技巧,你可以创建更加动态和响应式的Web应用。在实际项目中,记得...

    jquery下的cookie.js文件

    总结,jQuery.cookie.js是jQuery库中用于Cookie管理的重要插件,它简化了Cookie的创建、读取、更新和删除操作,使开发者能更高效地处理客户端数据。无论是在用户状态跟踪、个性化设置还是其他需要持久化存储的场景,...

Global site tag (gtag.js) - Google Analytics