HTML5 localStorage& SQL

时间:2009-12-10 02:18:15

标签: javascript sql html5 local-storage

我理解HTML5“localStorage”是一个键:值存储,但我想知道是否有可用的Javascript库提供更多 SQL-ish API?

6 个答案:

答案 0 :(得分:7)

查看Will HTML5 be SQL-free?DOM Storage: a Cure for the Common Cookie以获取一些链接和意见。

答案 1 :(得分:4)

W3C Database specification说:

  

用户代理必须实现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中使用此示例。运行此示例两到三次(或重新加载页面),您将看到表格中行数的增长情况。