首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL.js (SQLite JavaScript implementation)可以立即自动写入磁盘吗?

SQL.js (SQLite JavaScript implementation)可以立即自动写入磁盘吗?
EN

Stack Overflow用户
提问于 2014-08-15 15:09:03
回答 1查看 2.4K关注 0票数 5

我正在为Chrome扩展(以及该扩展的打包应用变体)提供一个原型,而像SQLite这样的小型轻量级的SQL数据库将是理想的选择。然而,Chrome应用程序不能使用Web.

我一直在试验SQL.js,这是SQLite的一个JavaScript实现,但似乎我需要随时将整个数据库手动写入磁盘。这意味着,如果我想将更改保存到当前会话之后,每一次SQL写入(例如,UPDATE、INSERT、DELETE)之后都需要手动将整个数据库写入磁盘。对,是这样?我是不是遗漏了什么?

是我使用SQL.js (或任何其他JavaScript实现SQLite)的唯一选项吗?,如果数据在数据发生变化时自动写入磁盘,则会容易得多。

更好的情况是,如果SQLite实现足够智能,只更新数据文件中实际更改的部分。因此,如果您有一个20 meg数据库,并且执行了一个从0到1的位标志翻转的更新,那么它就可以更改这一点,而不必将整个20 megs写到磁盘上。

我知道IndexedDB是另一种选择,我正在分别对它进行调查。这个问题与我的SQL.js/SQLite选项有关。我想确定我是否理解,以及如何让SQLite工作。

确实有一个Cordova特有的插件,提供SQLite支持,但在ChromeExtension&Apps中,这是行不通的(至少在没有定制的情况下)。

EN

回答 1

Stack Overflow用户

发布于 2014-12-20 17:22:30

您可以尝试阿拉斯克尔 JavaScript SQL库。它有本地存储和IndexedDB适配器,您可以在这里存储数据。

当Alasql立即将所有更改写入localStorage时,当前本地存储适配器可以在AUTOCOMMIT模式下工作(参见本地存储适配器源代码)。

代码语言:javascript
复制
alasql('CREATE LOCALSTORAGE DATABASE MyBase; SET AUTOCOMMIT ON; \
        INSERT INTO MyBase.cite VALUES ("Paris","France")");

如果您需要更具体的需求,那么很容易根据您的需要重写这个适配器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25328972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档