本地存储

把一些信息存贮到客户端本地(可以实现多页面之间的信息共享)

  • 离线缓存(xxx.mainfest)H5处理离线缓存有硬伤,真是项目中借助native app完成
  • localStorage/sessionStorage:H5中新增的API,基于api可以把一些数据缓存到客户端本地(常用)
  • IndexedDB/webSOL:B本地数据库存储
  • Cookie:本地信息存储(常用)
  • CacheStorage/ApplicationCache:本地缓存存储

    本地储存的地方

    【页面之间信息通信】

  • a存储信息,b页面中中获取

    1. -> 登录<br /> -> 记住用户名密码(或者自动登录)<br /> -> 购物车<br /> -> 跳转到其他页面,返回上级页面的时候停留在之前最后一次点击的位置

    【页面优化】
    经常不改变的数据,在第一次从服务器端获取到之后,存储到客户端本地(记录一个存储时间)
    ),假设在设置有效储存期内,刷新页面,不再向服务器发送请求,直接获取本地数据展示;超过设定期,重新向服务器发送请求,请求回来最新数据在存到本地,如此往复

  • 减轻服务器压力

  • 利于页面第二次加载

    localStorage

  1. 不兼容ie8及以下版本
  2. 存储大小限制:一个源下最多存储5MB左右
  3. 本地永久存储,只要不手动删除,永远保存在本地,可以基于api removeItem/clear手动清除信息
  4. 杀毒软件或者浏览器的垃圾清理暂时不会清除localStorage,新版的谷歌浏览器会清除LocalStorage等信息
  5. 在隐私或者无痕浏览模式下,是记录localStorage的
  6. localStorage和服务器没有关系
  • localStorage.setItem([key],[value]):value必须是字符串格式,不是的会默认转化
  • localStorage.getItem([key]):通过属性名获取存储的信息
  • localStorage.clear():清除当前域下存储的所有信息
  • localStorage.key(0):基于索引获取指定的key名

    cookie

  1. 兼容所有浏览器
  2. 有存储限制,一般一个源只能存储4kb内容
  3. cookie有过期时间,自己可以手动设置
  4. 杀毒软件或者浏览器的垃圾清理去都可能把cookie信息强制删除
  5. 在隐私或者无痕浏览模式下,不记录cookie
  6. cookie不是严格的本地存储,因为需要和服务器间来回传输
  • document.cookie=’’设置cookie

    真实项目中使用本地存储完成一些需求的情况不多,一般都是基于服务器的session或者数据库存储完成,(服务器session和本地的cookie有关联的),如果不考虑兼容,就基于本地存储完成一些事情,那么都是用来localStorage的

https://blog.csdn.net/IT_10/article/details/81095558

2.也有存储的大小限制,一个源下最多只能存储5MB左右
假设https://blog.csdn.net/weixin_39717076/article/details/82453750我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地数据中获取假设我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地数据中获取展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…假设我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地假设我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地数据中获取展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…数据中获取展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…