在Firefox插件中保存数据的最佳方法



例如,假设我们想保存一个url列表,并且该列表是动态更新的。以下是我认为可以做到这一点的方法。
1)保存为文本文件
2)在SQLite数据库中保存
3)保存在首选项中(我知道首选项是用来存储首选项的,但是使用首选项有什么缺点吗?)

保存与Firefox插件相关的数据的最佳方法是什么?如果一个通用的答案是不可能的,最好的方法是什么,就像上面的例子?为什么你认为这样的方法是合适的,而其他的方法不是?

首选项简单且轻量级,但是您的存储需求可能超出首选项。SQLite适用于需要快速查询功能的大型数据集。我发现使用基于文件的存储既简单又有效。只要确保尽可能使用异步I/O。

将数据保存为JSON(或其他格式)文本文件是一件很简单的事情。Firefox会话存储也做同样的事情。保存时,使用profile文件夹的位置,甚至可以创建一个子文件夹。

MDN有关于查找配置文件文件夹和读写文本文件的注释:

  • 获取特殊目录下的文件
  • 从文件中读取

您可以在旧版本中使用nsIJSON组件或在当前版本中使用内置JSON对象:https://developer.mozilla.org/en/JSON

简单存储

简单存储模块导出一个名为storage的对象,该对象是持久的,并且是附加组件私有的。它是一个普通的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!";

可以存储数组、布尔值、数字、对象、空值和字符串值。如果您想存储其他类型的值,首先必须将它们转换为字符串或其他类型。

相关内容

  • 没有找到相关文章

最新更新