http://handyxuefeng.blog.163.com/blog/static/454521722013111714040259/html
http://book.51cto.com/art/201106/270499.htm
web
http://www.cnblogs.com/blackbird/archive/2012/06/18/2553718.html
数据库
软件编程但愿经过一些手段来持久化的存储一些有用的数据。对于网络化编程,通常将这项任务交给了服务器端的数据库或者浏览器端的cookie。随着HTML5的出现,web开发又有了两种选择:Web Storage和Web SQL Database.编程
Web Storage有两种形式:LocalStorage(本地存储)和sessionStorage(会话存储)。这两种方式都容许开发者使用js设置的键值对进行操做,在在从新加载不一样的页面的时候读出它们。这一点与cookie相似。
浏览器
1.与cookie不一样的是:Web Storage数据彻底存储在客户端,不须要经过浏览器的请求将数据传给服务器,所以x相比cookie来讲可以存储更多的数据,大概5M左右。服务器
2.LocalStorage和sessionStorage功能上是同样的,可是存储持久时间不同。cookie
LocalStorage:浏览器关闭了数据仍然能够保存下来,并可用于全部同源(相同的域名、协议和端口)窗口(或标签页),网络
sessionStorage:数据存储在窗口对象中,窗口关闭后对应的窗口对象消失,存储的数据也会丢失。session
注意:sessionStorage 均可以用localStorage 来代替,但须要记住的是,在窗口或者标签页关闭时,使用sessionStorage 存储的数据会丢失。spa
三、使用 local storage和session storage主要经过在js中操做这两个对象来实现,分别为window.localStorage和window.sessionStorage. 这两个对象均是Storage类的两个实例,天然也具备Storage类的属性和方法。
Storage类的相关成员以下:
成员名 | 方法参数 | 描述 |
length | 属性 | 获取存储数据的条数 |
key(n) |
n:索引值 | 根据索引值,返回键名 |
getItem(key) | key:键名 | 根据键名,获取数据值 |
setItem(key,value) | key:键名 value:键值 | 根据键名和键值设置数据项,若是键名已经存在,则覆盖值 |
removeItem(key) | key:键名 | 根据键名删除一个数据项 |
clear() | 无 | 清空当前的Storage对象 |
其用法:
参数设置很简单,以下例:
localStorage.setItem('age', 40);
访问一个存储的数据同样很容易:
= .getItem('age');
能够这样删除一个特定的键值对:
localStorage.removeItem('age');
或者删除全部的键值对:
localStorage.clear();
sessionStorage与页面 js 数据对象的区别:
sessionStorage只要是同源的同学口(Tab)中,刷新页面或者进入不一样的页面数据对象仍然被保存,也就是说只要浏览器窗口不关闭,加载页面(同源)或刷新页面,数据仍存在。