14

ストレージに SQLite を使用するアプリケーションがあります。Firefox やその他のブラウザーで動作するように変更する必要があります。

LocalStorage が選択されているようです。ただし、localStorage はより複雑な SQL 機能 (OrderBy、GroupBy、テーブル結合など) を提供しません。

localStorage で動作し、SQL のように動作する Javascript の既存のライブラリを知っている人はいますか? -ありがとうございました

4

5 に答える 5

8

JavaScript linq 実装のいずれかを使用できます。それらはプレーンな JavaScript オブジェクト/配列からデータを取得するため、localstorage とのインターフェースはかなり楽になるはずです。

http://jslinq.codeplex.com/
http://linqjs.codeplex.com/
またはhttp://www.thomasfrank.se/sqlike.html

それらのオンライン デモ: http://secretgeek.net/JsLinq/ (左上のオプションに注意してください)

挿入/更新の側面についてはよくわかりませんが、それらを使用して優れたデータクエリを実行できることは確かです。

于 2012-12-25T22:15:41.453 に答える
7

sql.jsを試してください。これは、ネイティブ C から純粋な JavaScript への SQLite の直接移植です。

于 2013-10-05T02:08:52.120 に答える
4

alasql.jsを試してください。これは純粋な JavaScript で書かれた SQL データベースです。locasStorage を操作する機能はありませんが、セッションまたは変更の前後に必要なすべてのデータを簡単に保存および復元できます。

以下は、localStorage で Alasql を使用する方法の例です。

// Create database and table structure
var db = new alasql.Database();
db.exec('CREATE TABLE students (studentid INT, school STRING)');

// Load table data from localStorage if it exists or create new table
if(localStorage['students']) {
    db.tables.students.data = JSON.parse(localStorage['students']);
} else {
    db.tables.students.data = [
       {studentid: 55, school: 'abc'},
       {studentid: 56, school: 'klm'},
       {studentid: 57, school: 'nyz'}
    ];
    localStorage['students'] = JSON.stringify(db.tables.students.data);
};

// Add new student and save database
db.tables.students.data.push({student: 100, school:'qwe'}); 
localStorage['students'] = JSON.stringify(db.tables.students.data);

// SQL-query
console.log(db.exec("SELECT * FROM students WHERE school > 'ght'"));

この例は Fiddle にあります。

于 2014-10-30T10:44:59.700 に答える
3

SQLLite に代わる HTML5 / JavaScript リレーショナル データベースを探している場合: SequelSphere

SequelSphere は、最新のすべてのブラウザとプラットフォームで動作する Javascript ライブラリであり、そのデータを IndexedDB と LocalStorage に保存します (ブラウザがサポートするものによって異なります)。サードパーティの RIA フレームワークと簡単に統合でき、データの同期に役立つ「変更トラッカー」を提供します。

複雑な SELECT 機能について質問されたので、SequelSphere のサイトで次の情報を見つけました: Top 9 Cool SequelSphere Features

SequelSphere の最も印象的な機能は、革新的な SQL 解析および実行エンジンです。通常のすべての SELECT 機能と式を処理し、LEFT、RIGHT、および FULL の外部結合を処理するだけではありません。サブクエリの無制限のネストを処理するだけでなく、すべての主要な句 (SELECT、FROM、WHERE、JOIN、ON、HAVING、さらには GROUP BY!) でサブクエリを処理します。グループ化といえば、グループ化セット、ロールアップ、キューブ、および総計グループ化関数も処理します。次のような複雑な条件式も適切に処理します。

(a,b) not in ((1, 2), (3, 4), (select c, d from tab))

これに、AT RUNTIME でカスタムのユーザー定義関数とサード パーティのテーブルを混在させる機能 (それ自体が 2 つの優れた機能) を追加すると、SQL エンジンは本当に並外れたものになります。これらのことを実行できる SQL エンジンは他にありません。ましてや、すべての主要なブラウザーとプラットフォームで JavaScript で 100% 実行できることは言うまでもありません。そして、これらすべてが非常に速い速度で実行されることを忘れないでください。解析、計画、および最適化は、発生するすべてのサブミリ秒です。

完全な開示のために: 私は SequelSphere の一部であり、製品は素晴らしいです.

于 2012-12-26T13:42:15.157 に答える
1

私のオープン ソース ライブラリをお試しくださいhttps://bitbucket.org/ytkyaw/ydn-db/wiki/Homeこれには、IndexedDB、WebSQL、および Web ストレージがあります。豊富なクエリ オプションが用意されています。驚くほど使いやすい。

于 2012-12-27T05:37:50.213 に答える