Web Storage

1、Web Storage 是个啥?

HTML5 的 Web Storage 提供了两种在客户端存储数据的方法:loaclStorage 和 sessionStorage。它们可以键值对的形式在本地保存数据。其中 loaclStorage 用于持久化的本地数据,除非主动删除数据,否则数据永远不会过期。sessionStorage 保存会话期内数据,当用户关闭浏览器后,则这些数据会被删除。

Web Storage 的优点有:(1)存储空间更大、(2)存储内容不会发送到服务器、(3)提供一套更为丰富的接口,使得数据操作更为简便、(4)每个域(包括子域)有独立的存储空间,各个存储空间完全独立,不会造成数据混乱。

Web Storage 的缺陷主要几种在安全性方面:(1)浏览器会为每个域分配独立的存储空间,但是浏览器不会检查 JavaScript 脚本所在的域与当前的域是否相同、(2)存储在本地的数据未被加密而且永远不会过期,及易造成隐私泄露。

2、基本操作

loaclStorage 和 sessionStorage 对象拥有相同的属性和方法,也都具有相同的操作,简单说明一下:

2.1、存储值

使用 setltem() 方法可以存储值,用法如下:

setItem(key,value);    //参数key表示键名,value表示值,都以字符串形式进行传递。例如:
sessionStorage.setItem("key","value");
localStorage.setItem("site","mysite.cn");

2.2、读取值

使用 getltem() 方法可以读取指定键名的值,用法如下:

getItem(key);    //参数key表示键名,字符串类型。该方法将获取指定key本地存储的值。例如:
var value = sessionStorage.getItem("key");
var site = locaiStorage.getItem("site");

2.3、删除值

使用 removeltem() 方法可以删除指定键名本地存储的值。用法如下:

removeTtem(key);    //例如:
sessionStorage.removeItem("key");
localStorage.removeltem("site");

2.4、清空本地存储

使用 clear() 方法可以清空所有本地存储的键值对。用法如下:

clear();    //例如:
sessionStorage.clear();
localstorage.clear();

2.5、遍历操作

loaclStorage 和 sessionStorage 提供 key() 方法和 lengh 属性,使用它们可以方便地实现存储数据的遍新操作。下面例子获取本地 localStorage,然后使用 for 语句循环迭代所有本地存储的数据,并显示调试平台上面。

var storage = window.localStorage;
for(var i=0, len=storage.length;i<len;i++){
    var key = storage.key();
    var value = storage.getItem(key);
    console.log(key+"="+value);
}

2.6、storage 事件

Web Storage 还提供了 storage 事件,当键值改变或者 clear 的时候,就可以触发 storage 事件。

下面例子为页面添加了一个 storage 事件,这样当页面的本地存储发生值变动时将触发该事件。

if(window.addEventListener){
    window.addEventlistener("storage",handle_storage,false);
}eise if(window,attachEvent){
    window.attachEvent("onstorage",handle_storage);
}
funetion handle_storage(e){
    var logged = "key:" + e.key + ", newvalue:" + e.newValue + ", oldValue:" + e.oldValue  +
         ", url:" + e.url + ", storageArea:" + e.storageArea;
    alert(logged);
}

3、storage 事件说明表

属性类型说明
keyString健的名称
oldValueAny以前的值(被覆盖的值),如果是新添加的项目,则为null
newValueAny新的值,如果是新添加的项目,则为null
url/uriString引发更改的方法所在的页面地址

4、应用 idea

4.1、设计网页皮肤

在网页设计中,我们会用 JavaScript 动态设计网页皮肤,当用户选择某种样式的皮肤后,则再次访问该网站或页面,都将显示相同的皮肤样式。对于皮肤配置数据,最适合使用 localStorage 进行存储,这样每次访问页面时,都会自动调用 localStorage 数据设计页面样式,避免用户每次访问页面是都需要重新设置选项。

这是因为 loaclStorage 用于持久化的本地数据,除非主动删除数据,否则数据永远不会过期。

4.2、设计计数器

sessionStorage 可以作为会话计数器,localStorage 则可以作为 Web 应用访问计数器。声明一个 localStorage 计数器变量,当刷新页面时,会看到计数器增长,即使关闭浏览器窗口,然后重新访问页面,计数器会继续技术,而 sessionStorage 计数器只能够在当前会话期间显示页面访问量,即刷新页面会看到计数器增长,而当关闭浏览器床口,然后再试一次,计数器就会重置。

这是因为 loaclStorage 用于持久化的本地数据,除非主动删除数据,否则数据永远不会过期。而 sessionStorage 保存会话期内数据,当用户关闭浏览器后,则这些数据会被删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值