2011-01-21 19 views
3

ダウンロード時に拡張子でパックされたDBファイルを含めることは可能ですか? 私は、郵便番号付きの小さなDBを含めることを試みているので、拡張機能は適切な郵便番号の検索を要求する必要はありません。Google Chrome - 拡張子にSQLite dbを含めることは可能ですか?

はまったく可能ですか?

+0

データベースを単純なJavaScript配列/オブジェクトとしてコーディングするとどうなりますか? –

+0

私はそれをJSONまたは配列にすることを考えていました。パックされたDBとHTML5 DBにアクセスするための機能をほぼ同じに保てるかどうか試してみたかったのです。かなり多くの郵便番号があります。私たちはスタートアップのためのJS知識を少し持っているフロントエンドの人がいないことに苦しんでいます。私は物事を可能な限りシンプルに保つように努めていました。私はそれをSQLiteファイルにパックして出荷することができれば、ファイルをまとめて管理する方が簡単です。 – BaseBand

答えて

4

基本的にChrome拡張機能では、「zip_codes.json」ファイルを使用してパッケージ化しています。拡張が読み込まれたら、XHRを使ってそのファイルを読み込みます。たとえば、以下のスニペットは、非同期に(拡張子に格納されている郵便番号を取得したい場合は、同期も使用できます)。

var zipcodes = {}; 
var xhr = new XMLHttpRequest(); 
xhr.open('GET', chrome.extension.getURL('zip_codes.json'), false); 
xhr.onreadystatechange = function() { 
    zip_codes = JSON.parse(xhr.responseText); 
    console.log(zip_codes); 
} 

私はあなたがそれを出荷後、あなたは常にそのファイルを更新することができますので、このアプローチは、ファイルのためのあなた自身のlocalStorageキャッシュを追加するよりも管理が容易になるだろうと考えています。だから、

あなたzip_codes.jsonファイルには、次のを持っている場合:

{ 
    33445: 'Some zip' 
} 

あなただけの、次のアプローチを使用して、その郵便番号にアクセスすることができます。

console.log(zip_codes[33445]); 

助けを願っています!

+0

ありがとうございます!私はいくつかのバックエンドツールを使用して、データをDBから取り出し、転送可能なものに変換する必要があります。私はデータを変換するステップをスキップしたいと考えていました。私たちが取り組んでいる他のプロジェクトもいくつかあります。よく形成された答えをありがとう。 ---より多くのツールのための時間! – BaseBand

+0

JSONである必要はなく、XMLでもかまいません。 JSON.parse(xhr.responseText)を実行する代わりに、XMLの場合は "var dom = xhr.responseXml"を実行し、.getAttribute、.getElementsByNameなどの通常のDOM操作を使用できます。あなたの望む構造。全体のポイントはあなたの内線にそれを格納し、XHRはそれを読むことです。 1つのJSONオブジェクトにアクセスできるので、開発者にとってJSONのほうが簡単です。それがバックグラウンドページでホストされていることを確認してください。 –

関連する問題