0

我正在構建我的第一個chrome擴展,因爲我希望在客戶端瀏覽器中有一些預定義的數據。使用.crx發送預定義的數據到瀏覽器本地存儲

我希望用戶可以通過擴展來編輯數據,並保存更改。

我首先想到使用HTML5 local databaseIndexed Database API這個的。(我這樣做對嗎?)

但我不知道我怎麼能在這.crx本地數據庫發送給客戶所..because數據庫將使用瀏覽器而不是擴展名。

如何通過.crx將數據發送到客戶端瀏覽器並將數據保存在瀏覽器中? (我知道這不好,以節省瀏覽器數據,但我無法保存數據回來,如果我保存的數據與擴展一起)

還有什麼其他辦法,我可以用它來實現這個需求?

如果我想用Indexed Database API代替,我可以使用相同的方法嗎?


我的數據不是簡單的鍵值對,而是表類型的數據。
我沒有任何數據訪問部分的代碼,因爲我想確保在我可以繼續之前

回答

1

不,您不能使用ctx文件發送數據庫文件。只是你不能在客戶端更換它。 其實你有兩個選擇:

1)將預定義的數據保存到你的擴展中(在任何擴展文件中,將整個查詢或數據保存爲JSON)並在第一次運行後將這些查詢執行到本地數據庫。

2)創建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 
} 
+0

可以請你確定如何離線詞典(https://chrome.google.com/webstore/ detail/mplnjjdpheipggojikpifkibnoaakkii)是否實現? – dotNETbeginner 2012-01-05 11:34:03

+0

它們的擴展大小約爲8 MB,包含二進制文件中的定義數據。它不使用本地數據庫或本地存儲。它使用本地文件系統和二進制搜索來加載結果。 – 2012-01-05 12:53:32

相關問題