详情见《JavaScript高级程序设计》第25章
Cookie 与 LocalStorage:有何不同?

1. cookie

1.1 cookie的功能

  • 本身用于浏览器和server通讯
  • 被“借用”到本地存储来(本意并不是本地存储,而是用于浏览器和服务器间的通信)
  • 可用document.cookie = '...'来修改

    1.2 cookie的缺点

  • 存储大小最大4KB

  • http请求时需要发送到服务端,增加请求数据数量
  • 只能用document.cookie = '...'来修改,太过简陋

    2. localStorage和sessionStorage

    web storage目的是解决通过客户端存储不需要频繁发送回服务器的数据时使用cookie的问题,其提供了cookie之外的存储会话数据的途径和跨会话持久化存储大量数据的机制,其主要有两个对象:localStoragesessionStoragelocalStorage是永久存储机制,sessionStorage是跨会话的存储机制。

    2.1 相同点

  • HTML5专门为存储而设计,最大可存5M

  • API简单易用,setItem和getItem
  • 不会随着http请求被发送出去

    2.2 不同点

  • localStorage数据会永久存储,除非代码或手动删除

  • sessionStorage数据只存在于当前会话,浏览器关闭则清空
  • 一般用于localStorage会更多一些

    3. 描述cookie、localStorage和sessionStorage的区别

4. IndexedDB

IndexedDB是浏览器中存储结构化数据的一个方案,其设计几乎是完全异步的。