2011-04-23 19 views
5

例如,讓我們說我們想要保存一個URL列表,並且此列表是動態更新的。以下是我看到這可以完成的方式。
1)在一個文本文件
2保存)保存在一個SQLite數據的基礎上
3)保存在偏好(我知道偏好用於存儲偏好,但有沒有使用任何優選的缺點?)
將數據保存在Firefox附加組件中的最佳方法

保存與Firefox附加組件有關的數據的最佳方法是什麼?如果一個通用的答案是不可能的,對於像上面這個例子那樣的情況,最好的方法是什麼?你爲什麼認爲這種方法是適當的,而其他方法不適用?

回答

9

首選項既簡單又輕便,但您的存儲需求可能會超過首選項。 SQLite適用於需要快速查詢功能的大型數據集。我發現使用基於文件的存儲簡單而有效。只要確保儘可能使用異步I/O。

將數據保存到一個JSON(或其他格式)文本文件是一個簡單的事情。 Firefox會話存儲做同樣的事情。保存時,使用配置文件文件夾位置,甚至可以創建一個子文件夾。

MDN對查找的配置文件夾和讀/寫文本文件註釋:

您可以在舊版本或者使用內置的nsIJSON組件在Firefox瀏覽器當前版本的JSON對象:https://developer.mozilla.org/en/JSON

+1

建議現在使用OS.File進行文件讀寫:[OS.File](https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread) – Noitidart 2014-03-22 19:25:11

1

簡單存儲

簡單的存儲模塊的出口對象調用存儲是持久的和私人你的插件。這是一個普通的JavaScript對象,你可以像對待任何其他對象一樣對待它。

要存儲的值,只需將其分配給屬性上存儲:

var ss = require("sdk/simple-storage"); 
ss.storage.myArray = [1, 1, 2, 3, 5, 8, 13]; 
ss.storage.myBoolean = true; 
ss.storage.myNull = null; 
ss.storage.myNumber = 3.1337; 
ss.storage.myObject = { a: "foo", b: { c: true }, d: null }; 
ss.storage.myString = "O frabjous day!"; 

可以存儲陣列,布爾,數,對象,空值和字符串值。如果你想存儲其他類型的值,你首先必須將它們轉換爲字符串或其他類型的值。

相關問題