HTML5 web 存储:HTML5 提供了两种在客户端存储数据的新方式:localStorage 和 sessionStorage ,二者都是仅在客户端(即浏览器)中保存,不参与和服务器的通讯。web
早些时候,本地存储使用的是 cookie,。可是 cookie 不适合大量数据的存储,后来 HTML5 提供了 localStorage 和 sessionStorage Web,这些数据不会被保存在服务器上,它也能够存储大量的数据,而不影响网站的性能。数据以键/值对存在且只容许该网页访问使用。浏览器
用于临时保存同一窗口(或标签页)的数据,在关闭浏览器或该标签页以后就会删除这些数据。服务器
无论是 localStorage,仍是 sessionStorage,可以使用的API都相同,经常使用的有以下几个(下面以localStorage为例):cookie
当咱们想在 localStorage 和 sessionStorage 中存储对象时,能够先用 JSON.stringify(obj) 方法将对象转换为字符串,而后进行存储。要想将值做为对象输出能够用 JSON.parse(str) 方法将字符串转换为对象。session
共同点:性能
都是保存在本地浏览器端。网站
区别:spa
cookie数据始终在同源的http请求中携带(即便不须要),即cookie在浏览器和服务器间来回传递;cookie数据还有路径(path)的概念,能够限制cookie只属于某个路径下。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。对象
存储大小限制不一样:cookie数据不能超过4k,同时由于每次http请求都会携带cookie,因此cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,能够达到5M或更大。索引
数据有效期不一样:sessionStorage仅在当前标签页关闭前有效,当该标签页关闭后数据也会被删除;localStorage:持久化的本地存储,保存的数据没有过时时间,直到手动去除;cookie只在设置的cookie过时时间以前一直有效,即便窗口或浏览器关闭。