上犹电脑信息网我们一直在努力
您的位置:上犹电脑信息网 > 设置问题 > 说说JavaScript的cookie与存储-cookies设置

说说JavaScript的cookie与存储-cookies设置

作者:上犹日期:

返回目录:设置问题

cookie也叫HTTP Cookie,最初是客户端与服务器进行会话使用的。比如会员登录,下次回访网站时无须登录了;或者购物车,过几天发现购物车里还有之前的商品列表。

HTTP Cookie要求服务器对任意HTTP请求发送Set-Cookie,因此,Cookie的处理原则上需要在服务器环境下进行。当然,现在大部分浏览器在客户端也能实现Cookie的生成和获取。

一、Cookie

cookie组成:

cookie由名/值对形式的文本组成:name=value。完整格式为:

name=value;[expires=date];[path=path];[domain=somewhere];[secure]

中括号是可选,name=value是必选。

document.cookie = 'user=' + encodeURIComponent('小名'); //编码写入

alert(decodeURIComponent(document.cookie)); //编码读取

expires=date 失效时间,如果没有声明,则为浏览器关闭后即失效。声明了失效事件,那么时间到期后才能失效。

var date = new Date();

date.setDate(date.getDate() + 7);

document.cookie = 'user=' + encodeURIComponent('小名') + ';expires=' + date;

如果要提前删除cookie也非常简单,只要重新创建cookie把时间设置成当前时间之前即可:date.getDate() - 1或new Date()。

path = path 访问路径,当设置了路径,那么只有设置的那个路径文件才可以访问cookie。

domain=domain 访问域名,用于限制只有设置的域名才可以访问,那么没有设置,会默认限制为创建cookie的域名。

设置了域名,必须在当前域名绑定的服务器上设置,如果在当前域名服务器上随意设置其他域名,则会无法创建cookie。

secure 安全设置,指明必须通过安全的通信通道来传输(HTTPS)才能获取cookie。

JavaScript设置、读取和删除并不是特别的直观方便,我们可以封装成函数来方便调用。

说说JavaScript的cookie与存储

说说JavaScript的cookie与存储

说说JavaScript的cookie与存储

说说JavaScript的cookie与存储

二、Cookie局限性

第一:每个特定的域名下最多生成20个cookie(根据不同的浏览器有所区别)。

第二:cookie的最大大约为4K。

第三:cookie存储在客户端的文本文件,所以特别重要和敏感的数据是不建议保存在cookie的。

三、其他存储

在比较高版本的浏览器,JavaScript提供了sessionStorage和globalStorage。在HTML5中提供了localStorage来取代globalStorage。

//通过方法存储和获取

sessionStorage.setItem('name', 'okk');

alert(sessionStorage.getItem);

//通过属性存储和获取

sessionStorage.name = 'okk';

alert(sessionStorage.name);

//删除存储

sessionStorage.removeItem('name');

由于localStorage取代了globalStorage,所以在FF、Opera、Chrome目前最新版本已不支持。

//通过方法存储和获取

localStorage.setItem('name', 'okk');

alert( localStorage.getItem('name'));

//通过属性存储和获取

localStorage.name = 'okk';

alert(localStorage.name);

//删除存储

localStorage..removeItem('name');

这里顺便说说sessionStorage和localStorage的区别:

①localStorage生命周期是永久,只有手工删除或者清理浏览器缓存才失效。

②sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

③不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

相关阅读

关键词不能为空
极力推荐

电脑蓝屏_电脑怎么了_win7问题_win10问题_设置问题_文件问题_上犹电脑信息网

关于我们