2015-07-13 204 views
0

我正在處理頁面動作擴展,並希望存儲擴展的所有用戶都可以訪問的信息。信息將是關鍵字:值對,其中關鍵字是網址,值是鏈接數組。Chrome擴展程序數據庫存儲

我必須能夠更新數據庫,而無需將擴展程序重新部署到Chrome商店。我應該考慮使用什麼?存儲API似乎面向用戶數據,而不是由應用程序存儲並由開發人員更新的數據。

回答

1

如果您希望在不通過CWS部署更新版本的情況下更新某些內容,則需要自行託管數據並使用擴展名查詢它。使用作爲所述數據的緩存將是完全合適的。

+0

使用chrome.storage.local作爲緩存會完成什麼? – pqx994

+1

在託管成本和獲取操作的延遲/可靠性方面,每次需要值時查詢外部託管的數據庫可能過於昂貴。一個好的策略是在本地緩存結果,比如半個小時。或者,有一個單獨的查詢會導致數據庫的「版本」,並更新本地緩存(如果更改)。 – Xan

+0

非常感謝 – pqx994

1

這個問題很廣泛,所以生病給你一些我曾經做過的想法。

既然你說你不想在數據庫發生變化時重新發布,你需要自己爲數據庫存儲數據。這並不意味着你需要存儲一個實際的數據庫,只是擴展獲取數據的一種方式。

理想情況下,您只是添加新對。如果是這樣,一個簡單的方法是將您的配對存儲在公開的Google電子表格中。該擴展會記住最後一行同步並使用行提要逐步獲取數據。 有一些技巧可以正確處理電子表格同步。看看我的github「加上trello」來獲得完整的實現。 這是增量同步的好方法,如果數據庫不是很大,您可以僅託管一個csv文件並定期從擴展中獲取它。

現在您可以將數據獲取到擴展中,決定如何存儲它。 chrome.storage.local或indexedDb應該很好,但是索引db通常最適合稍後查詢比哈希表更復雜的內容。

+0

該數據庫不大,託管的csv文件將是最好的。我想知道如何從宿主CSV獲取數據到擴展名,以及如何將數據存儲在本地存儲中。你能否詳細說明這對於初學者來說是如何完成的?我應該閱讀哪些內容? – pqx994

+0

谷歌如何解析csv。否則使用更簡單的格式,如json。閱讀關於localStorage,chrome.storage,infexedDb和他們的pro/cons。 –

+0

非常感謝 – pqx994