我正在考虑构建一个 LOB appjs 应用程序,我想为其使用 IndexedDB 进行存储。我对 appjs 中的 IndexedDB 有一些疑问。
最大存储限制是多少,有什么方法可以配置 appjs 的 chromium 浏览器来增加限制?
如果 IndexedDB 中的数据超出了用户的 RAM,我会不会有问题?由于它只是一个存储对象图的键值存储,我想知道它是否会将整个数据加载到 RAM 中。
谢谢。
如果您在 AppJS 中构建应用程序,那么您可以跳过 indexedDB 并使用 nodejs 库来访问完整的数据库。因此,例如https://npmjs.org/package/node-sqlite-purejs或https://npmjs.org/package/sqlite3将为您提供包含事务等的完整关系数据库。
如果你想走 nosql 路线,那么 nodejs 有很多可用的 nosql 数据库。要在 app.js 代码中将数据库连接到您的应用程序,您需要在窗口中添加一个函数,该函数可以是您的数据库 api,例如它可以接受要运行的查询名称甚至 sql,然后传入一个回调函数数据运行后调用。app.js 添加到窗口对象的函数然后可以查询数据库并取回记录,然后使用结果调用回调函数。
关于存储限制我不能说,但理论上 indexeddb 的大小仅限于硬盘的大小。但在大多数情况下,都会设置一个限制;)。
据我所知,只有您将处理的数据才会加载到内存中。JS 有它自己的垃圾收集器,因此应该负责 RAM 的使用。