electron中数据持久化的选择

实际上投入使用最靠谱的还是本地文件、sqlite和IndexedDB。

本地文件适合用来存储一些查询较少的内容,较多查询的结构化数据使用起来就非常麻烦了。

IndexedDB总体上不错,可以跨端,在web上也可以使用,有一些限制,但是总体上使用体验不错。不过也有一些问题就是,如果数据是主进程使用的,存储在indexedDB会增加很多的ipc调用。

sqlite作为一个嵌入式数据库,支持大多数的sql标准,应该是在electron中作为结构化数据存储的最好选择。

如果项目实际上有跨端支持浏览器的需求,建议同时使用sqlite和indexedDB,indexedDB作为前端的缓存,用户更快的展示数据,sqlite相关的代码也方便后端封装web服务,增加抽象层的话,还可以后期更换其他数据库,比如MySQL或者PostgreSQL等。

前端或者说渲染进程当然也可以使用localStorage或者sessionStorage存储这种作为缓存,但是因为数据大小限制,很多情况下,与桌面应用同构的web程序本地缓存数据应该是不太适合的。

发表回复

您的电子邮箱地址不会被公开。