Jos*_*osh 5 javascript sql sqlite google-chrome-extension google-chrome-app
我正在为Chrome扩展程序(以及该扩展程序的打包应用程序变体)创建一个想法,其中一个小而轻量级的SQL数据库(如SQLite)将是理想的.但是,Chrome Apps无法使用Web SQL.
我一直在尝试SQL.js,一个SQLite的JavaScript实现,但似乎我需要在我想保存的任何时候手动将整个数据库写入磁盘.这意味着每次SQL写入(例如,UPDATE,INSERT,DELETE)都需要手动将整个数据库写入磁盘,如果我想将更改保留在当前会话之后.正确?我错过了什么吗?
这是我使用SQL.js(或SQLite的任何其他JavaScript实现)的唯一选择吗?如果数据在数据发生变化时自动写入磁盘会更容易.
如果SQLite实现足够智能,只更新实际更改的数据文件部分,那就更好了.因此,如果你有一个20兆的数据库,并且你做了一个从0到1翻转一点标志的更新,它可能只改变那一位,而不是必须将整个20兆位写入磁盘.
我知道IndexedDB是另一种选择,我正在单独调查它.这个问题是关于我的SQL.js/SQLite选项.我想确定我是否了解SQLite是否以及如何使其工作.
确实有一个特定于Cordova的插件可以提供SQLite支持,但这在Chrome扩展程序和应用程序中不起作用(至少,不能没有自定义).
您可以尝试Alasql JavaScript SQL 库。它具有本地存储和 IndexedDB 适配器,您可以在其中存储数据。
当前的本地存储适配器可以在 AUTOCOMMIT 模式下工作,此时 Alasql 将每个更改立即写入 localStorage(请参阅本地存储适配器源代码)。
alasql('CREATE LOCALSTORAGE DATABASE MyBase; SET AUTOCOMMIT ON; \
INSERT INTO MyBase.cite VALUES ("Paris","France")");
Run Code Online (Sandbox Code Playgroud)
如果您需要更具体的要求,可以轻松地根据您的需要重写此适配器。
| 归档时间: |
|
| 查看次数: |
1850 次 |
| 最近记录: |