缓存里面都是字符串格式的

1.Window.localStorage (长期的缓存)

localStorage 里面存储的数据没有过期时间设置

  1. // 封装一下本地缓存
  2. // 读和取
  3. //ts
  4. export function setLocalStorage(key: string, value: any) {
  5. localStorage.setItem(key, JSON.stringify(value));
  6. }
  7. export function getLocalStorage(key: string) {
  8. return JSON.parse(localStorage.getItem(key)!); //非空断言!
  9. }
  10. export function removeLocalStorage(key: string) {
  11. localStorage.removeItem(key);
  12. }
  13. export function clearLocalStorage() {
  14. localStorage.clear();
  15. }

2.Window.sessionStorage (tab窗口关闭则数据丢失)

存储在 sessionStorage 里面的数据在页面会话结束时会被清除。

3.cookie

详见文档cookie

4.区别

localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

数据共享
不同浏览器无法共享localStorage或sessionStorage中的信息。
相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口)
但是不同页面或标签页间无法共享sessionStorage的信息。

这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。