【问题标题】:How to persistently store data in `localStorage` when using `jpm run` for a Firefox Add-on SDK extensionFirefox Add-on SDK 扩展使用“jpm run”时如何将数据持久存储在“localStorage”中
【发布时间】:2016-02-23 13:38:38
【问题描述】:

我正在开发 Firefox 扩展程序,我需要在 localStorage 中存储登录属性的日期。

我使用了简单存储,但简单存储重启后会丢失数据。

所以,请告诉我如何在localStorage 中存储数据。

【问题讨论】:

标签: javascript firefox-addon firefox-addon-sdk firefox-developer-tools


【解决方案1】:

您可能正在使用jpm run 来测试您的插件。 jpm run 每次执行时都会使用一个新的临时配置文件。如果您希望任何数据从一个执行到另一个执行,您将需要使用-p--profile= 选项来指定用于该运行的配置文件。请参阅 MDN 上的 Using profiles。您可以指定配置文件名称或配置文件的路径。仅使用jpm run 缺乏持久性对于放置在配置文件或配置文件目录中的任何存储都是一个问题,无论是simple-prefs 的首选项,使用simple-storage 的数据,使用io/file 的文件,一个使用SQLite database 或任何其他方法的数据库。这在多个页面上都有明确说明,包括simple-storage 页面。

示例(来自 MDN):

jpm run --profile boogaloo
jpm run --profile path/to/boogaloo

如果您想创建一个新的配置文件用于测试,您可以使用profile manager。您可以通过使用 -p-P-ProfileManager 中的任何选项启动 Firefox 来启动配置文件管理器。通常,您需要退出任何当前正在运行的 Firefox 实例才能启动新版本的 Firefox。但是,也可以使用 -no-remote 选项在使用不同配置文件打开 Firefox 的同时启动新实例。例如,在 64 位 Windows 上,要启动 Firefox 配置文件管理器,我通常使用:

"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -no-remote -ProfileManager

如果您真的想使用本地存储,您应该将数据存储在配置文件目录中,因此您仍然需要执行上述步骤才能使用指定的配置文件。您将需要查看io/file,并且需要open() 文件,然后使用text-streamsbyte-streams 读取或写入它。下一个合乎逻辑的问题是它应该存储在哪里,但这是另一个问题:Where to save files from Firefox add-on?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多