cookie

415 阅读2分钟

   cookie?
    1.它是什么: Cookie 是一些数据, 存储于你电脑上的文本文件中。 当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。

    2.作用:就是用于解决 "如何记录客户端的用户信息"

    3.当用户访问 web 页面时,他的名字可以记录在 cookie 中。
    在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
    Cookie 以名/值对形式存储,如下所示:
    name = 火云邪神;

   存储cookie: document.cookie = "names = 火云邪神";
   读取cookie:document.cookie; (document.cookie 将以字符串的方式返回所有的 cookie,类型格式: cookie1=value; cookie2=value; cookie3=value;) -->

   <script>  
  function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
        var expires = "expires=" + d.toGMTString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }
    //cookie 的名称为 cname,cookie 的值为 cvalue,并设置了 cookie 的过期时间 expires。
    function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i].trim();
            if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); }
        }
        return "";
    }
    // 创建一个检测 cookie 是否创建的函数。
    // 如果设置了 cookie,将显示一个问候信息。
    //  如果没有设置 cookie,将会显示一个弹窗用于询问访问者的名字,并调用 setCookie 函数将访问者的名字存储 365 天:

    function checkCookie() { 
        var user = getCookie("username");
        if (user != "") {   
            alert("欢迎 " + user + " 再次访问");
        }
        else {
            user = prompt("请输入你的名字:", "");
            if (user != "" && user != null) {
                setCookie("username", user, 30);
            }
        }
    }  
    checkCookie();

cookie常用操作方法:

/删除cookie
function delCookie(name)
{
		var exp = new Date();
		exp.setTime(exp.getTime() - 1);
		var cval=getCookie(name);
		if(cval!=null)
		document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
 
//写cookies
function setCookie(name, value, days) {
		var exp = new Date();
		exp.setTime(exp.getTime() + days*24*60*60*1000);
		document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
 
//读cookie
function getCookie(name)
{
	var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
	if(arr=document.cookie.match(reg))
	return unescape(arr[2]);
	else
	return null;
}



//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
 
 
//如果需要设定自定义过期时间
//那么把上面的setCookie&emsp;函数换成下面两个函数就ok;
 
 
//程序代码
function setCookie(name,value,time){
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str){
    alert(str);
    var str1=str.substring(1,str.length)*1; 
    var str2=str.substring(0,1); 
    if (str2=="s"){
    return str1*1000;
    }else if (str2=="h"){
    return str1*60*60*1000;
    }else if (str2=="d"){
    return str1*24*60*60*1000;
    }
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
//暂时只写了这三种
setCookie("name","hayden","s20");