本地存储
把一些信息存贮到客户端本地(可以实现多页面之间的信息共享)
- 离线缓存(xxx.mainfest)H5处理离线缓存有硬伤,真是项目中借助native app完成
- localStorage/sessionStorage:H5中新增的API,基于api可以把一些数据缓存到客户端本地(常用)
- IndexedDB/webSOL:B本地数据库存储
- Cookie:本地信息存储(常用)
CacheStorage/ApplicationCache:本地缓存存储
本地储存的地方
【页面之间信息通信】
a存储信息,b页面中中获取
-> 登录<br /> -> 记住用户名密码(或者自动登录)<br /> -> 购物车<br /> -> 跳转到其他页面,返回上级页面的时候停留在之前最后一次点击的位置
【页面优化】
经常不改变的数据,在第一次从服务器端获取到之后,存储到客户端本地(记录一个存储时间)
),假设在设置有效储存期内,刷新页面,不再向服务器发送请求,直接获取本地数据展示;超过设定期,重新向服务器发送请求,请求回来最新数据在存到本地,如此往复减轻服务器压力
- 利于页面第二次加载
localStorage
- 不兼容ie8及以下版本
- 存储大小限制:一个源下最多存储5MB左右
- 本地永久存储,只要不手动删除,永远保存在本地,可以基于api removeItem/clear手动清除信息
- 杀毒软件或者浏览器的垃圾清理暂时不会清除localStorage,新版的谷歌浏览器会清除LocalStorage等信息
- 在隐私或者无痕浏览模式下,是记录localStorage的
- localStorage和服务器没有关系
- localStorage.setItem([key],[value]):value必须是字符串格式,不是的会默认转化
- localStorage.getItem([key]):通过属性名获取存储的信息
- localStorage.clear():清除当前域下存储的所有信息
- localStorage.key(0):基于索引获取指定的key名
cookie
- 兼容所有浏览器
- 有存储限制,一般一个源只能存储4kb内容
- cookie有过期时间,自己可以手动设置
- 杀毒软件或者浏览器的垃圾清理去都可能把cookie信息强制删除
- 在隐私或者无痕浏览模式下,不记录cookie
- cookie不是严格的本地存储,因为需要和服务器间来回传输
- document.cookie=’’设置cookie
真实项目中使用本地存储完成一些需求的情况不多,一般都是基于服务器的session或者数据库存储完成,(服务器session和本地的cookie有关联的),如果不考虑兼容,就基于本地存储完成一些事情,那么都是用来localStorage的
2.也有存储的大小限制,一个源下最多只能存储5MB左右
假设https://blog.csdn.net/weixin_39717076/article/details/82453750我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地数据中获取假设我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地数据中获取展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…假设我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地假设我们设置有效存储期是10分钟,那么10分钟以内,我们再刷新页面,就不用再向服务器发送请求了,直接从本地数据中获取展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…数据中获取展示即可;超过10分钟,从新向服务器发送请求,请求回来最新数据参考第一次,也一样存储到本地中…