具有SQL样式查询的非弃用localStorage

时间:2014-09-29 20:06:52

标签: sql indexeddb

看起来有一个问题类似于我在2009年的情况: HTML5 localStorage & SQL

然而,4年后发生了很多变化,所以我希望听到一些关于此的最新信息。看起来WebDatabase正式被弃用,我已经研究过IndexedDB,并且我没有太深刻的印象,它的查询能力似乎与SQL相比是原始的。

感觉更像是我使用链表而不是数据库。

所以我的问题是,是否有人创建了某种支持localStorage实现的接口(理想情况是或多或少面向未来),这将让我运行SQL式查询?

我想我应该补充一点,我主要只是对维护代码语法感兴趣,因为我将使用SQL后端,我希望能够基本上只复制和粘贴来自后端的数据库代码,用于前端的离线功能。

提前致谢!

编辑:如果有人这样做的话,我也会采取相同的积极记录。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用Alasql库。它是一个内部localStorage支持的JavaScript SQL引擎,因此您可以使用“老旧”SQL在浏览器中保存数据:

alasql('CREATE localStorage DATABASE IF NOT EXISTS Atlas');
alasql('ATTACH localStorage DATABASE Atlas AS MyAtlas');
alasql('CREATE TABLE IF NOT EXISTS MyAtlas.City (city string, population number)');
alasql('SELECT * INTO MyAtlas.City FROM ?',[[{city:'Vienna', population:1731000},
     {city:'Budapest', population:1728000}]]);
var res = alasql('SELECT * FROM MyAtlas.City');

这是sample in Fiddle