美文网首页
IndexedDB 的性能优化

IndexedDB 的性能优化

作者: alue | 来源:发表于2022-05-05 15:25 被阅读0次

IndexedDB 是前端存储的一个解决方案,能够提供客户端的大数据量可靠数据管理服务。

但它两个缺点:一是接口复杂,二是写入数据库时,有可能阻塞UI。

所以使用IndexedDB前,要问自己两个问题。

  1. 可不可以用 LocalStorage 代替?
    对于大小在几MB之内,不需要检索,且方便序列化为字符串的数据,完全可以用 LocalStorage 代替IndexedDB,处理起来会更简单。

  2. 可不可以直接向后端获取数据。
    其实理论上来说,同一时间,页面展示的信息量一般不会过大。因为用户本身也难以接受扑面而来的海量的信息,所以用懒加载的方式,按需向后端获取信息,能够减轻前端海量数据的渲染压力。当服务端压力不大时,完全没必要在前端再搭建一套数据管理服务。

如果确定要用IndexedDB,那么需要注意的是UI阻塞问题。

IndexedDB在写入数据时,会在主线程执行结构化克隆算法,如果对象过大,算法执行时会阻塞页面的渲染,让用户产生卡顿的感觉。

有三个方法来避免UI阻塞问题。

  1. 避免巨型对象的直接写入。
    可以考虑把巨型对象分解成多个小对象,缩短单次写入的时长。

  2. 存储巨型对象前,先将对象转换为字节,这样避免了结构化克隆算法的执行。
    类似前文 把函数转换为字符串, 可以利用 ArrayBuffer 将对象转换为二进制字节,后面读取的时候,再次转换回对象。

  3. 使用 webworker 技术,避免阻塞主线程。

相关文章

  • IndexedDB 的性能优化

    IndexedDB 是前端存储的一个解决方案,能够提供客户端的大数据量可靠数据管理服务。 但它两个缺点:一是接口复...

  • Awesome Extra

    性能优化 性能优化模式 常见性能优化策略的总结 Spark 性能优化指南——基础篇 Spark 性能优化指南——高...

  • Android性能优化 - 消除卡顿

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - Tra...

  • Android性能优化 - 内存优化

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - Trac...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • 常用的后端性能优化六种方式:缓存化+服务化+异步化等

    性能优化专题 前端性能优化 数据库性能优化 jvm和多线程优化 架构层面优化 缓存性能优化 常用的后端性能优化六大...

  • webpack 性能优化

    webpack性能优化 开发环境性能优化 生产环境性能优化 开发环境性能优化 优化打包构建速度 优化调试功能 生产...

  • iOS性能优化 - 整理

    本文主要包含: 性能优化 - 卡顿性能优化 - 耗电优化性能优化 - APP启动优化安装包瘦身 一  性能优化 -...

  • 【React.js 20】React性能优化

    React性能优化 React性能优化主要分三块: React 组件性能优化 属性传递优化针对单组件性能优化,很多...

网友评论

      本文标题:IndexedDB 的性能优化

      本文链接:https://www.haomeiwen.com/subject/qcznyrtx.html