29

Insights プラットフォームの 1 つで、要約 SQLite3 データベースをバックグラウンドで生成し、ブラウザーでチャートとしてレンダリングできるようにする予定です。現在、データ要件に対応するサーバー側のエンドポイントを予定しています。

サーバー側のエンドポイントを完全に排除することで、これをさらに最適化しようとしています。(セキュリティの観点から) S3 で SQLite3 を直接公開し、javascript モジュールでチャートを読み取って生成することは問題ありません。

SQLite3 ファイルはかなり小さいと予想されます。おそらく 4 ~ 6 列、おそらく 10 ~ 500 行のデータで、すべてのファイルに含まれるテーブルは 1 つだけです。テストの実行では、ファイル サイズが 15KB 未満であることが示されました。ブラウザ上で SQLite3 を作成または操作するつもりはありません。WebSQL や IndexedDB フォームとしてブラウザーにキャッシュする必要はありませんが、それが必要な場合はそれらを使用してもかまいません。

私の Web 検索では、SQLite3 ファイルを読み取って結果を照会できる Javascript ライブラリを見つけることができません。これを行うことができる JavaScript ライブラリを知っている場合は、お知らせください。

一方、何らかの理由でこれを行うべきではないと思われる場合は、コメント/回答としてそれらを投げてください. -ボックスなので、フィードバックを歓迎します!

4

2 に答える 2

31

sql.jsあなたが望むことを正確に行うことができると呼ばれるjavascriptライブラリがあります。あなたの場合、そのように使用します

const SQL = await initSqlJs(options);
const fetched = await fetch("/path/to/database.sqlite");
const buf = await fetched.arrayBuffer();
const db = new SQL.Database(new Uint8Array(buf));
const contents = db.exec("SELECT * FROM my_table");
// contents is now [{columns:['col1','col2',...], values:[[first row], [second row], ...]}]

sql-js.github.io/sql.js/documentation/のドキュメントを参照してください。

于 2014-05-26T23:44:12.433 に答える
2

最善の方法はわかりませんが、1つはJavaScriptSQLiteリーダーライブラリを自分で作成することです。これは退屈な作業になりますが、できると確信しています。一部のクールな人々はpdf.jsを実行しました。これはPDFファイル用のJavaScriptレンダラーであり、 SQLiteファイルと同様にバイナリBLOBでもあります。

ほとんどの場合、FileReader APIから始めてSQLiteファイルをウォークスルーし、チャートツールで使用できるコンテンツのメモリ内表現を作成します。

免責事項:他の人が提案したように、おそらく最初の問題を別の解決策で解決したいと思うでしょうが、これはあなたの質問に答えます。

于 2013-02-08T07:18:03.727 に答える