localStorage

它是采用Key - Value的方式存储数据,底层数据接口是sqlite,按域名将数据分别保存到对应数据库文件里。它能保存更大的数据(IE8上是10MB,Chrome是5MB),同时保存的数据不会再发送给服务器,避免带宽浪费。

属性和方法

1
2
3
4
5
6
7
localStorage.length             // 获得storage中的个数
localStorage.key(n) // 获得storage中第n个元素对的键值(第一个元素是0)
localStorage.getItem(key) // 获取键值key对应的值
localStorage.key // 获取键值key对应的值
localStorage.setItem(key, value)// 添加数据,键值为key,值为value
localStorage.removeItem(key) // 移除键值为key的数据
localStorage.clear() // 清除所有数据

sessionStorage 与它的用法完全相同

缺点

  • localStorage大小限制在500万字符左右,各个浏览器不一致
  • localStorage在隐私模式下不可读取
  • localStorage本质是在读写文件,数据多的话会比较卡(firefox会一次性将数据导入内存,想想就觉得吓人啊)
  • localStorage不能被爬虫爬取,不要用它完全取代URL传参

sessionStorage和localStorage的区别

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。当用户关闭浏览器窗口后,数据立马会被删除。

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。第二天、第二周或下一年之后,数据依然可用。

03-17 02:27