0

私は最初のクロムエクステンションを構築しています。クライアントブラウザで事前定義されたデータが必要です。事前定義されたデータを.crxでブラウザのローカルストレージに送信

拡張子でデータを編集して変更を保存できるようにします。

は、私が最初に(私が右やっている?)

。このためにHTML5 local databaseまたはIndexed Database APIを使用するのではと思った。しかし、私は、私はデータベース..because .crxにクライアントの場所にこのローカルデータベースを送ることができる方法がわかりません拡張子ではなくブラウザで表示されます。

クライアント側のブラウザに.crxでデータを送信し、ブラウザにデータを保存するにはどうすればよいですか? (私はブラウザにデータを保存する権利がないと知っていますが、データを保存するとデータを保存できません)

要件を実装するために使用できる方法は他にありますか?

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


私のデータは単純なキー値のペアではなく、テーブルの種類のデータです。
私は進める前に確実にしたいので、データアクセスのコードはありません

答えて

1

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

1)拡張子(任意の拡張子ファイル内のすべてのクエリまたはデータをJSONとして保存)に保存し、最初にこれらのクエリをローカルデータベースに実行した後。

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

(data.json):background.htmlで

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

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 
} 
+0

あなたはどのようにオフライン辞書(https://chrome.google.com/webstore/を識別してくださいすることができます詳細/ mplnjjdpheipggojikpifkknonokkii)が実装されていますか? – dotNETbeginner

+0

拡張子のサイズは約8 MBで、定義データはバイナリファイルに含まれています。ローカルDBまたはローカルストレージは使用しません。ローカルファイルシステムとバイナリ検索を使用して結果をロードします。 –

関連する問題