前端持久化存存储操作简单,兼容性好又能存储大量数据的方法?

最近开发过程碰到一个问题:
在页面上有大量数据需要临时存储,在其他模块中使用,页面关闭时清除。
本来采用的sessionStorage,使用方便,兼容性好。直到有一次,一次性存了6千个节点信息的流图,然后存储就爆了。(谷歌浏览器66.0.3359.139(正式版本32位))

假设sessionStorage的存储量为5M,6千个节点的流图数据量超过5M,方便计算就以6千节点/5M为1个单位。
在需求里,1个流图可能存在1万个节点数据的情况。也就是一次性存储至少达到10M
另外,一个页面会有多个流图存在,保险起见,总存储量大致为100M

暂时想到的思路,
①数据的存储直接交给后台。优点:解决了数据存储量问题。缺点:请求耗时间,不稳定,清除操作不方便。
②采用indexedDB。优点:存储量足够了,不借助后台。缺点:兼容性不太好,API操作不方便。
③采用其他开源的插件。这暂时没找到较适合的,查阅了localForage文档,看操作挺方便的,可貌似存储量5M。

阅读 4.5k
3 个回答

看你的描述我认为indexedDB是最合适的
但你说的兼容性不太好具体指的是?
我的意思是,根据你们产品适用人群和场景,浏览器版本之类的跟兼容性相关的
兼容性有什么硬性需求吗?
如果没有的话,就采用indexedDB吧

推荐:①数据的存储直接交给后台。使用这种方式。
前端的存储设计本来就是用来存放一些小的临时数据的,你这么大的数据已经不适合了,后台更适合干这个,有很多缓存框架可以使用,ehcache,redis等等,很适合来干这个。

如果后台实现的合理,提供的接口稳定,可以快速响应,人性化的api,请求耗时间,不稳定,清除操作不方便这些都不是问题。

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