h5缓存

h5提供存储的api

浏览器端的存储

服务器端的存储有 cache,磁盘文件(图片),数据库,内存(存储缓存)

1. cookie及其缺点

cookie是http请求的头部必须带着,请求头带有存储信息,子域名的访问会造成主域名的污染,页面浏览速度慢,导致安全隐患

客户端存储的大小(4k)限制,可以将身份验证和购物车存储放在cookie中

2.本地存储localstorage&&sessionstorage

介绍localstorage存储,开发者工具resource中看出,(数组,json,脚本,样式文件)只能转为字符串才可以localstorage存储

图片如何存储呢

h5缓存

获取图片的地址,加载完图片之后创建和图片大小一样大小的canvas

使用drawimage()将图片渲染到canvas中

使用todataurl()取出该地址(字符串形式)放入localstorage中

h5缓存

之后再本地存储中使用localstorage.getItem(key)取出该图片地址,

使用dom方法渲染到页面,图片也可以跨域

使用localstorage需要注意:移动端浏览器等是否支持

 写数据时先setItem之后做已成处理 来判断

避免敏感信息localstorge

 key的唯一性,会覆盖的

子域名不可以共享存储数据,cookie可以实现跨域

超出存储大小使用LRU,FIFO

server端如何获取

3.离线缓存offline application cache

h5缓存

在web离线的情况下继续使用,再通过manifest文件指明要缓存的资源

缺点:1》manifest只能在第二次刷新时才能更新到app cache中被用户获取到

            2》manifest更新到app cache中会拉去所有缓存文件,会有损耗

创建manifest文件

h5缓存

引入manifest文件

h5缓存

检测是否在线  navigator.online

4.关系型数据indexDB(持久化存储数据化结构数据的数据库,为web提供丰富的查询能力)

h5缓存

关键字:事务,索引,游标