您的位置:首页 > Web前端 > JavaScript

js实现Cookie的简单应用-------Day53

2014-07-01 00:13 239 查看
今天已经是六月的最后一天了啊,窗外有知了在叫着,天气预报里还预报着明后天还要有几场雨,我已经很少有那种百无聊赖的感觉了,有些怀念,可还是舍不得当下这满满的斗志,这走在路上的感觉,真好。

首先,要记录的是两幅图片,大家来看看这是什么:





这两幅图片想必大家都不会陌生,在网页上面登录某个页面的时候,经常会碰到第一个“记住密码”的提示;而第二个是我们在淘宝应用中应用最频繁的“购物车”,而这两个都是对Cookie的一种简单应用。

1、Cookie的一些常识

*Cookie是什么?Cookie,又称小型文本文件或者小甜饼(这个还是百度下吧,你知道“提拉米苏”的意义么,还记得java的咖啡图标么,每个被赋予的名字都有一个美丽的故事或者一些简单的生活),本质上来看的话就是存在客户端,也就是用户本地终端的一些数据。

*Cookie的由来?这里不是说名字的故事,而是它的起源,为网景公司Netscape的Lou Montulli于1993年3月发明(不得不说,网景公司的强大,javascript似乎来也是来源于此啊,牛人多啊)

*常用的应用?记住密码、购物车、浏览历史记录、统计访问人数和根据用户的喜好来进行推荐或者页面设定等等

*存在的弊端?耗流量、容易泄密、Cookie欺骗等等,这个暂时还没有研究,姑且按查到的资料简单写下

2、Cookie集合的属性

*Expires属性:用来给Cookie设定期限,一旦超过期限,则删除Cookie

*Secure属性:用来指定Cookie能否被用户读取

*Path属性:用来表示Cookie只发给指定的路径请求

*Domain属性:传递数据的唯一性(这后两个没太明白什么意思)

*Haskeys属性:如果所请求的Cookies是一个具有多个键值的Cookies字典,则返回True,它是一个只读属性

3、代码实现Cookie的简单应用

首先是加入Cookie,我在火狐浏览器中运行,写的是这样的编码

function setCookie(){
var uname=document.getElementById("uname");
var upwd=document.getElementById("upwd");
document.cookie="uname="+uname.value;//document.cookie=是等于哦,引号里面的也是一键一值哦,用“=”联系的值和键
document.cookie="upwd="+upwd.value;
}
当然这里的调用可以是像按钮“加入购物车”onclick="setCookie()",也可以使选择框标记onchange="setCookie()"(当然这个的话是要判定是选中,还是不选),另外便是读取Cookie,下面来看这段代码:

function getCookie(){
var innerhtml=document.getElementById("showZoned");
var arr=document.cookie.split(";");//split方法,在这里第一次应用
for(var i=0;i<arr.length;i++){
var jz=arr[i].split("=");//有效的应用split方法,让运算简单了许多
if(jz[0]=="uname"){
var name=jz[1];
innerhtml.innerHTML=name;
}
}
}
这里来解释下split方法,Stringobject.split("separator",howmany);这里separator代表了以什么来分割成数组,howmany则是一个可有可无的参数,表示最多保留多少位数组。

用分号将整个的Cookie转换成一个数组,每个元素为一键一值,而根据“=”将一键一值分开,如果存在相应的键,则读取其值。

最后是删除Cookie,删除也可以说是将Cookie设置为过期,没有实际意义了就可以说没用了,这里牵扯到Cookie的期限问题,看下面的代码:

var oDate = new Date();
oDate.setDate(oDate.getDate()+1);//oDate.setTime(oDate.getTime()+60*1000),来设置一天或者60秒
document.cookie="user=wangchi;expires="+oDate;//expires用来设置Cookie的期限
如果想要Cookie失效的话,是不是oDate.setDate(oDate.getDate()-1)来设定就可以呢,其实随便一个过去的值都可以吧,expires=-1就ok啦。

这样我们在应用Cookie中的增加,删除和获取都实现了,也就实现了Cookie的最基本的操作。接下来,就来总结下这个月的工作和学习吧。

6月份算是一个过渡期,GIS项目结束,进入了业绩员考评项目。

GIS扫尾阶段其实也不是很轻松,各类文档的编写修改,各种数据的修改整理,甚至一个表就几十项,而且好多都是数据,密密麻麻的实在要人命啊,excel的导入导出中出现的问题竟然往往出在了excel的各种应用上,着实头疼了好久,不得不说,数据的规范使得做出的产品一下子就有了那个范儿,立马专业了很多,这可是个亮点,另外就是在测试过程中,出现太多问题,原以为自己思路很清晰,考虑已经很周全了,结果问题还真就匪夷所思的出现了,而当去解决的时候却非常痛苦的发现,这个问题确实存在,修修改改不停啊。

业绩员考评项目刚刚开始,处于界面设计阶段,最大的收获应该就是对easyUI的应用了,虽然之后发现对它的修改还是很麻烦,但是这前端的框架应用让我对前端的理解有多了一点,jquery那种太庞大,反而给我的刺激没有那么大。

学习方面的话,对javascript的了解又深了一点,对于基础方面、交互方面和表单类型方面现在简单的有了个了解认识,也能做到能用上,很开心,在七月份希望可以了解的更深一点,然后希望可以着手做几个小应用,完成以上部分后转变开始研究其它部分,至于javascript,就在之后不断了解中不断查缺补漏,从而使理解应用上更广一点。

夜又深了,去睡觉,不知道这雨什么时候开始下,有点小闷热啊....

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: