浏览器缓存

数据存储在浏览器内存中,不会被页面刷新消失,存储量有大小限制,不过实在开发中,合理的应用已经可以满足绝大缓存需求

  • sessionStorage 会话级别 关闭窗口则自动清除
  • localStorage 永久级别 需手动删除

添加缓存

  • localStorage.setItem(‘key’,‘value’) 保存一个值
  • localStorage.key = value //等同上面

按key查询

  • localStorage.getItem(‘key’) //读取
  • localStorage.key //等同上

查询所有

  • localStorage.valueof() //读取储存的所有数据
  • localStorage.key[0] //读取第一条数据

清除缓存

  • localStorage.removeItem(‘key’) //删除
  • localStorage.clear() 情况所有数据

检查是否存在

  • localStorage.hasOwnProperty(‘key’) //查看是否存在 在:true

封装缓存类

class LocalStorage {/*** 设置localStorage 内容* @author huangzhongfei* @date 2021-11-3* @param {String} {key} 主键* @param {any} {value} 内容* @returns {any}*/static set(key, value) {if (typeof key !== 'string') {throw 'localstorage -- key必须为字符串'}value = value || ''value = typeof value === 'object' ? JSON.stringify(value) : valuewindow.localStorage.setItem(key, value);}/*** 根据Key 查询缓存* @author huangzhongfei* @date 2021-11-3* @param {String} {key} 主键* @returns {any}*/static get(key) {let value = window.localStorage.getItem(key);try {return JSON.parse(value)} catch (err) {return value}}/*** 根据Key 清除缓存, 可传多个key值* @author huangzhongfei* @date 2021-11-3* @param {any} {key} 主键* @returns {Object}*/static remove() {const keys = Array.from(arguments);for (let i in keys) {window.localStorage.removeItem(keys[i]);}}/*** 清除所有缓存* @author huangzhongfei* @date 2021-11-3* @returns {undefined}*/static removeAll() {window.localStorage.clear();}}

js 浏览器缓存 手写缓存工具类相关推荐

  1. JS 面试问题: 手写 new

    JS 面试问题: 手写 new

  2. JS获取本机IP的工具类

    JS获取本机IP的工具类 /*** 获取ip地址*/ export function getUserIP(onNewIP) { // onNewIp - 回调函数//兼容for firefox and ...

  3. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 缓存策略 | LruCache 内存缓存 | LruCache 常用操作 | 工具类代码 )

    文章目录 一.Bitmap 内存缓存策略 二.LruCache 内存缓存 三.LruCache 常用操作 四.LruCache 工具类 五.源码及资源下载 官方参考 : Google 官方提供的 内存 ...

  4. 手写缓存之FIFO算法

    文章目录 前言 一.FIFO算法是什么? 二.使用步骤 1.先写一个接口类 2.简单的Cache实现类 3.FIFO算法实现 3.运行效果 总结 前言 我们都知道为了减轻数据库的访问压力,有一个很好的 ...

  5. 小白玩机器学习(6)--- 基于Tensorflow.js的在线手写数字识别

    一.题目要求 1.三个js文件,分别完成:网络训练以及模型保存.模型加载及准确率测试.在线手写数字识别: 2.模型测试准确率要高于99.3%(尽量): 3.在线手写数字识别需要能够通过鼠标在画布中写入 ...

  6. calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?

    本文收集各种 Java 常用工具类,包括字符串.日期.集合/数组.IO.计时等. 1 字符串 1.1 StringUtils Maven 依赖信息: <dependency> <gr ...

  7. html移动端实现手写签名,signature手写签名实现,微信公众号浏览器html手写签名实现

    前言 html移动端手写自动横竖签名实现,并base64图片格式获取: 横竖根据屏幕宽高自动平铺. 效果图 图一 图二 实现 如下代码直接复制成.html文件打开即可预览效果 <!DOCTYPE ...

  8. VUE 爬坑之旅 -- 用 ES6 语法写一个工具类,并全局引用

    在我前面的有一篇文章里有说过怎么引入外部的 JS 文件,详情见 VUE 爬坑之旅– 如何对公共JS,CSS进行统一管理,全局调用 .这里所说的外部 JS 文件指的是用 ES6 之前的老语法编写的各种 ...

  9. JS之difference手写实现

    文章目录 difference手写实现 differences手写实现 方法一:使用forEach 方法一:使用for difference手写实现 difference(arr1, arr2): 得 ...

最新文章

  1. enterpriseTECH Dec 11
  2. 数据分析专题报告范文6篇_小学生看图写话范文:小熊玩跷跷板?(6篇),让孩子参考练习...
  3. 高级软件工程第七次作业:东理三剑客团队作业-随笔2
  4. SQL Server查询sql去掉小数位后末尾的0
  5. VirtualXposed 免ROOT使用Xposed模块
  6. java背景颜色代码_java设定背景颜色
  7. Java实现UTC时区转换
  8. matlab非齐次线性方程组的解,MATLAB求解非齐次线性方程组
  9. 中芯国际三季度营业收入创新高;德州仪器与德赛西威签署合作备忘录 | 全球TMT...
  10. Chrome 屏蔽广告
  11. Collecting Bugs (DP期望)
  12. 多元函数概念和偏导数
  13. 软件测试课堂笔记之语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,在eclipse上新建测试用例
  14. Firefly笔记一之http模块
  15. 大前端课程 - 4.5个月学习总结
  16. 马斯克与SEC再次寻求法庭延长期限 以解决马斯克使用推特纷争
  17. MybatisPlus入门(涉及大部分常用操作)
  18. python语言使用不需要付费不存在商业风险_python+-中国大学mooc-题库零氪
  19. 大规模数据分析统一引擎Spark入门实战
  20. Cocos Creator 3D下TypeScript实现H5版3D投篮游戏!

热门文章

  1. 名帖345 怀素 草书《论书帖》
  2. oneno浏览器插件_三款好用的浏览器插件,附带浏览器插件安装方法
  3. java permgen space_完美解决PermGen space异常的问题
  4. 【Linux 内核】实时调度类 ⑤ ( 实时调度类 rt_sched_class 源码分析 | 结构体字段及函数指针分析 )
  5. python爬虫2021.8.4
  6. access制作卡片_Access入门教程大全
  7. chrome浏览器安装失败,已解决(方便)
  8. (1)es6——什么是es6以及它的作用
  9. java连接oracle报错ora-12505,JDBC连接ORACLE中的ORA-12505错误以及相关问题和解决方式...
  10. 创龙OMAPL138 Linux系统修改静态IP地址