0

私は最初の chrome 拡張機能を作成しています。そのために、クライアント ブラウザーに事前定義されたデータをいくつか用意したいと考えています。

ユーザーが拡張機能を使用してデータを編集し、変更を保存できるようにしたい。

私は最初にHTML5を使用することを考えlocal databaseましIndexed Database APIた.(私は正しくやっていますか?)

しかし、このローカルデータベースをクライアントの場所に送信する方法がわかりません.crx..データベースは拡張機能ではなくブラウザを使用するためです。

.crx でクライアント側ブラウザにデータを送信し、データをブラウザに保存するにはどうすればよいですか? (ブラウザにデータを保存するのはよくないことだとわかっていますが、拡張子を付けてデータを保存すると、データを保存できなくなります)

要件を実装するために他にどのような方法を使用できますか?

Indexed Database API代わりに使用したい場合、同じ方法を使用できますか?


私のデータは単純なキーと値のペアではなく、テーブルのようなデータです。
続行する前に確認したいので、データ アクセス部分のコードはありません。

4

1 に答える 1

1

いいえ、ctx ファイルでデータベース ファイルを送信することはできません。単にクライアント側で置き換えることはできません。実際には、次の 2 つのオプションがあります。

1)事前定義されたデータを拡張機能に保存し(任意の拡張ファイルに保存します。クエリ全体またはデータをJSONとして保存します)、最初にそれらのクエリをローカルデータベースに実行した後、それらのクエリを実行します。

2) 事前定義されたデータを取得してローカル DB に保存する Web サービスを作成します。

例 (data.json):

[{"name":"name", "desc":"desc","some_column":"some value"},{"name":"name", "desc":"desc","some_column":"some value"}, ...]

background.html で:

var xhr = new XMLHttpRequest();
xhr.open('GET', chrome.extension.getURL('data.json'), false);
var dataStr = xhr.send(); //don't do this way. use asynch api :)
var data = JSON.parse(dataStr);
//connect to local database
for(var _item in data){
    //create query to insert data into DB
    //and exequte query
}
于 2012-01-05T11:07:03.160 に答える