localStorage 是同源存储的,除非满了或者 js 手动删除,否则永远存在;
sessionStorage “
sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。”
关闭页面就会被删除。
两者只能存字符串,所以每次都要序列化,反序列化,而且操作都是同步的。
还有一个叫 IndexedDB 的技术,是前端页面本地的 nosql 数据库,异步的,存储结构化数据;
localForage
是一个 js 库,支持 IndexedDB,sessionStorage,localStorage,web sql(这个技术已经被淘汰了),这个库用同一个 api 来实现优雅的降级页面本地存储,封装了一下,比较方便。