在 Firefox 插件中保存数据的最佳方法
例如,假设我们想要保存 URL 列表,并且该列表是动态更新的。以下是我认为可以做到这一点的方法。
1)保存为文本文件
2)保存在SQLite数据库中
3) 保存在首选项中(我知道首选项是用于存储首选项,但是使用首选项有什么缺点吗?)
保存与 Firefox 插件相关的数据的最佳方法是什么?如果无法给出通用答案,那么针对上述示例的情况最好的方法是什么?为什么你认为这样的方法合适而其他的方法不合适?
For example let us say that we want to save a list of URLs and this list is updated dynamically. The following are the ways that I see this can be done.
1) Save in a text file
2) Save in a SQLite data base
3) Save in a preference (I know preferences are for storing preferences but is there any drawback of using a preference?)
What is the best method to save data related to a Firefox add-on? If a generic answer is not possible, what is the best method for a situation like the example above? And why do you think that such a method is appropriate and others are not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首选项简单且轻量级,但您的存储需求可能会超出首选项。 SQLite 适用于需要快速查询功能的较大数据集。我发现使用基于文件的存储简单而有效。只要确保尽可能使用异步 I/O 即可。
将数据保存到 JSON(或其他格式)文本文件是一件简单的事情。 Firefox 会话存储也做同样的事情。保存时,使用配置文件文件夹位置,甚至可以创建一个子文件夹。
MDN 有关于查找配置文件文件夹和读取/写入文本文件的说明:
您可以使用
nsIJSON旧版本中的
组件或当前版本 Firefox 中的内置 JSON 对象:https://developer.mozilla.org/en/JSONPreferences are simple and lightweight, but your storage requirements could outgrow preferences. SQLite is good for larger sets of data that need fast query capabilities. I find using file-based storage simple and effective. Just make sure you use async I/O whenever possible.
Saving the data to a JSON (or other format) text file is a simple thing to do. The Firefox session store does the same thing. When saving, use the profile folder location, maybe even make a sub folder.
MDN has notes on finding the profile folder and reading/writing a text file:
You can use the
nsIJSON
component in older releases or the built-in JSON object in current releases of Firefox: https://developer.mozilla.org/en/JSONsimple-storage
简单存储模块导出一个名为 storage 的对象,该对象对于您的附加组件来说是持久且私有的。它是一个普通的 JavaScript 对象,您可以像对待任何其他对象一样对待它。
要存储值,只需将其分配给存储上的属性即可:
您可以存储数组、布尔值、数字、对象、空值和字符串值。如果您想存储其他类型的值,则首先必须将它们转换为字符串或其中的另一种类型。
simple-storage
The simple storage module exports an object called storage that is persistent and private to your add-on. It's a normal JavaScript object, and you can treat it as you would any other.
To store a value, just assign it to a property on storage:
You can store array, boolean, number, object, null, and string values. If you'd like to store other types of values, you'll first have to convert them to strings or another one of these types.