前端indexedDB 适合存储一个大的json对象,然后里面有图片文件吗。还是说把图片文件单独提取出来放到一个新的表。如果数据全放在json对象里面,操作文件数据就比较方便,不会有同步的问题。如果放到新的表,维护起来比较麻烦。但是放在一个大的json对象里面是否对性能有所影响。哪种方案比较可行
前端indexedDB 适合存储一个大的json对象,然后里面有图片文件吗。还是说把图片文件单独提取出来放到一个新的表。如果数据全放在json对象里面,操作文件数据就比较方便,不会有同步的问题。如果放到新的表,维护起来比较麻烦。但是放在一个大的json对象里面是否对性能有所影响。哪种方案比较可行
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
首先要考虑使用indexDB存储的目的。如果是为了加快页面响应,作为缓存用。比如有些数据需要请求接口,但是接口可能会比较耗时,或者3D渲染的一些数据等,可以将这些数据缓存在DB里,就直接存json。
如果你想缓存静态文件,比如图片,css, js等,这种情况下用DB并不是最好的选择,因为它的速度还不如浏览器本身的缓存快,不如做好强缓存和协商缓存,加上前端的一些preload来对静态资源进行优化。如果一定要前端自己控制静态资源的缓存,也可以用
cacheStorage
。最后如果你还是需要存图片在DB里,因为DB直接就可以通过key - value的存储和获取,你直接存json里没有任何问题,一个key对应一张图片,或者一个key对应一堆图片。图片是url、base64都行。但是数据越大,性能一定是越差的,获取的时间会更久。