我理解HTML5“localStorage”是一个键:值存储,但我想知道是否有可用的Javascript库提供更多 SQL-ish API?
答案 0 :(得分:7)
答案 1 :(得分:4)
用户代理必须实现Sqlite 3.6.19支持的SQL dialect。
截至目前,至少 Google Chrome支持SQL方言。我自己checked。
答案 2 :(得分:3)
您应该使用HTML5数据库存储(它通过事务支持SQL)。 这里有一个教程:http://www.html5rocks.com/tutorials/webdatabase/todo/
答案 3 :(得分:1)
HTML5本地数据库存储默认带有SQL接口,如果我没弄错的话
这是一个Webkit帖子,其中包含一些示例:http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/
目前,Chrome强制您使用Gears,这稍微不同,但仍然基于SQL。但是,Chrome的未来版本将遵循HTML5规范。
答案 4 :(得分:1)
答案 5 :(得分:1)
您可以尝试Alasql。它支持标准SQL语言并将数据保存在内存或localStorage中。 有多种方法,如何将Alasql与localStorage一起使用。您可以在下面看到如何创建名为“Atlas”的localStorage数据库,将其作为“MyAtlas”附加到Alasql,然后您可以像使用任何其他数据库一样使用表。默认情况下,Alasql使用AUTOCOMMIT ON模式,因此它会在每个SQL语句之后将数据保存到localStorage。
这是一个示例:
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');
在jsFiddle中使用此示例。运行此示例两到三次(或重新加载页面),您将看到表格中行数的增长情况。