前端indexedDB 适合存储一个大的json对象,里面有图片文件吗?还是说把图片文件单独提取出来放到一个新的表?

新手上路,请多包涵

前端indexedDB 适合存储一个大的json对象,然后里面有图片文件吗。还是说把图片文件单独提取出来放到一个新的表。如果数据全放在json对象里面,操作文件数据就比较方便,不会有同步的问题。如果放到新的表,维护起来比较麻烦。但是放在一个大的json对象里面是否对性能有所影响。哪种方案比较可行

阅读 2.8k
1 个回答

首先要考虑使用indexDB存储的目的。如果是为了加快页面响应,作为缓存用。比如有些数据需要请求接口,但是接口可能会比较耗时,或者3D渲染的一些数据等,可以将这些数据缓存在DB里,就直接存json。

如果你想缓存静态文件,比如图片,css, js等,这种情况下用DB并不是最好的选择,因为它的速度还不如浏览器本身的缓存快,不如做好强缓存和协商缓存,加上前端的一些preload来对静态资源进行优化。如果一定要前端自己控制静态资源的缓存,也可以用cacheStorage

最后如果你还是需要存图片在DB里,因为DB直接就可以通过key - value的存储和获取,你直接存json里没有任何问题,一个key对应一张图片,或者一个key对应一堆图片。图片是url、base64都行。但是数据越大,性能一定是越差的,获取的时间会更久。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题