html5存储

html5之前:

1.cookies诞生

  • http请求头里会带着
  • 大小4K
  • 主Domain污染(子域名的cookies会带上主域名里设置的cookies)

百度首页cookies:(cookies在浏览器存储形态)

2.UserData 

  • 只有IE支持
  • 最终存储放在一个XML文件里

html5存储

1.诞生的目的

  • 解决4k的大小问题
  • 解决请求头常带存储信息的问题
  • 解决关系型存储的问题
  • 跨浏览器

2.html5的几种存储

  • 本地存储(localstorage && sessionstorage)
  • 离线缓存(application cache)
  • IndexedDB和Web SQL

3.本地存储(localstorage && sessionstorage)

  • 存储形式:key-value
  • 过期时间:
    • localstorage:永久存储,永不失效,除非手动删除;
    • sessionstorage:会话结束(重新打开一个页面)或浏览器关闭时删除
  • 大小:官方文档给出的是每个域名5M
  • 使用方法(API)
    • getItem
    • setItem
    • removeItem
    • key(指定索引的key值)
    • clear(全部删除)
  • 可以存什么东西?(只要能序列化成字符串就都可以存储)
    • 数组/json数据/图片/脚本/样式文件
    • 存图片
    • 取图片
  • 使用注意事项
    • 使用前要判断浏览器是否支持
    • 写数据时,需要异常处理,避免超出容量抛错
    • 避免存入敏感信息
    • key的唯一性
  • 使用限制
    • 存储更新策略,过期控制
    • 子域名之间不能共享存储数据
    • 超出存储大小之后如何存储(LRU,FIFO)
    • server端如何取到(通过在请求后面添加参数传给服务端)
  • 使用场景
    1. 利用本地数据,减少网络传输
    2. 弱网络环境下,高延迟,低宽带,尽量把数据本地化

4.IndexedDB(先放一放)

5.html5的离线缓存

  • 什么是离线缓存?
    • 可以让web应用在离线情况下继续使用,通过manifest文件指明需要缓存的资源
  • 检测是否在线
    • navigator.onLine
  • 原理

  • 缺陷
    • 如果文件更新了,第一次访问的还是旧文件,只有第二次才能访问到更新后的文件
    • 如果只有一个文件更新,也会全部重新拉取
    • 对链接的参数变化是敏感的,任何一个参数的修改都会被(master)重新缓存(重复缓存含参页面)index.html和index.html?renew=1会被认为是不同文件,分别缓存
  • 优势
    • 完全离线
    • 资源被缓存,加载更快
    • 降低server负载
  • 使用
    • 创建manifest文件
    • 在html页面中引用manifest文件
      • <html manifest="**.appcache">
    • 在服务器添加mime-type text/cache-manifest
  • 试用场景
    • 单地址的页面
    • 对实时性要求不高的业务
    • 离线webapp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值