HTML5の「localStorage」がkey:valueストアであることは理解していますが、よりSQLっぽいAPIを提供するJavascriptライブラリが利用できるかどうか疑問に思っています。
6 に答える
HTML5 は SQL を使用しないでしょうか? を確認してください。およびDOM Storage: a Cure for the Common Cookieの一部のリンクと意見。
W3C データベース仕様は次のように述べています。
ユーザー エージェントは、Sqlite 3.6.19 でサポートされているSQL ダイアレクトを実装する必要があります。
現在のところ、少なくともGoogle Chrome は SQL 方言をサポートしています。私は自分自身をチェックしました。
HTML5 データベース ストレージを使用する必要があります (トランザクションによる SQL をサポートします)。チュートリアルはこちら: http://www.html5rocks.com/tutorials/webdatabase/todo/
HTML5ローカルデータベースストレージには、間違いがなければ、デフォルトでSQLインターフェイスが付属しています
いくつかの例を含むWebkitの投稿を次に示します。http ://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/
現在、ChromeではGearsの使用が強制されています。これは少し異なりますが、SQLベースです。ただし、Chromeの将来のバージョンはHTML5仕様に準拠します。
これを試してください:http: //kailashnadh.name/code/localstoragedb/
Alasqlを試すことができます。標準の SQL 言語をサポートし、メモリまたは localStorage にデータを保持します。localStorage で Alasql を使用する方法はいくつかあります。以下に、「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でこのサンプルを試してください。このサンプルを 2 ~ 3 回実行 (またはページをリロード) すると、表の行数がどのように増加するかがわかります。