• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
目录,不存在的…

HTML5的缓存策略

2017-11-10 13:01:24
总字数 508
预计阅读时间 1 分钟

HTML5当中新增了两种浏览器端的缓存方式
分别是sessionStorage和localStorage

  • sessionStorage - 用于会话级别数据的缓存 , 这些数据只有在同一个会话中的页面才能访问 , 当会话结束后数据就会随之销毁
  • localStorage - 用于持久化的本地存储 , 除非主动删除数据 , 否则数据是永远不会过期的 在此之前 , 本地缓存的方式主要就是cookie
    但是cookie有很多弊端 , 比如
  • 存储容量是受限的
  • 每次请求一个新的页面 , cookie都会被带过去 , 浪费了带宽
  • 无法跨域调用
  • 明文存储 , 安全性很差

当然有了web storage , 也并不能完全取代cookie , 因为cookie的作用是与服务器进行交互 , 作为HTTP规范的一部分而存在 , 而Web Storage仅仅是为了在本地存储数据而已


在支持web storage的浏览器当中 , sessionStorage和localStorage都是window当中的全局对象 , 可以直接使用
用法都很简单
localstorage
可以直接使用继承自原型对象的这几个方法 , 添加 获取 移除 键值对 , 也可以当做普通的JS对象来使用 , 直接给对象属性赋值

1
2
3
4
5
6
localStorage.setItem("name","Sookie");
//或者 localStorage.name = "Sookie";
localStorage.getItem("name");
//或者 localStorage.name;
localStorage.removeItem("name");
//或者 delete localStorage.name

除此之外 , key()方法可以获取到Storage当中指定索引的键 , 与length配合可以用于遍历所有缓存的数据

1
2
3
4
5
for(let index=0 ; index<localStorage.length ; index++) {
let key = localStorage.key(index);
let value = localStorage.getItem(key);
console.log(key + " = " + value);
}

####事件
浏览器提供了storage事件 , 用于监听localStorage的变化

需要注意的是 , 在某一个页面设置这个事件的回调函数之后 , 在本页面对localStorage进行操作 , 是不会触发这个事件的 , 在另外一个标签中打开该页面 , 才会触发这个事件

1
2
3
window.addEventListener("storage",function(e){
console.log(e);
});

storage_event

  • HTML5
  • 前端杂烩

扫一扫,分享到微信

SASS-初见
实现call方法 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆