gpt4 book ai didi

firefox - 在 Firefox 插件中有一个 "brain"?

转载 作者:行者123 更新时间:2023-12-04 04:47:56 26 4
gpt4 key购买 nike

我有一个插件,每隔 5 分钟左右就会检查一个 rss 提要是否有新帖子,如果有,它会显示一个 alert()。问题是,我担心如果用户打开多个窗口,当有一个新帖子时,会弹出数百万条警报说同样的事情。无论如何,一次只有一个“大脑”在运行吗?

提前致谢!

最佳答案

查找称为“Javascript 共享代码模块”或 JSM 的东西。

主要文档在这里:

https://developer.mozilla.org/En/Using_JavaScript_code_modules

插件中需要共享内存的每个 .js 文件都将使用以下行打开:
Components.utils.import("resource://xxxxxxxx/modules/[yourFilenameHere].jsm", com.myFirefoxAddon.shared);
上面的行打开 [yourFilenameHere].jsm 并加载它的 导出 (见下文)函数和变量到 com.myFirefoxAddon.shared 对象中。加载的该对象的每个实例都将指向内存中的同一个实例。

请注意,如果您希望插件通过审核,您需要将所有代码写入 com.myFirefoxAddon.* 类型对象,因为 AMO 的暴徒正在阻止批准不 Respect the Global Namespace 的插件。

JSM 最大的警告是,您需要手动导出您希望对其余代码可用的每个函数......因为 JS 不支持公共(public)/私有(private)类型的东西,这让我觉得有点像穷人“公共(public)”支持...在任何情况下,您都需要在 JSM 文件的某处创建一个 EXPORTED_SYMBOLS 数组,并命名您要导出的每个函数或对象,如下所示:

var EXPORTED_SYMBOLS = [
/* CONSTANTS */
"SERVER_DEBUG",
"SERVER_RELEASE",

"LIST_COUNTRIES",
"LIST_TERRITORIES_NOEX",

/* GLOBAL VARIABLES */
/* note: primitive type variables need to be stored in the globals object */
"urlTable",
"globals",

/* INTERFACES */
"iStrSet",

/* FUNCTIONS */
"globalStartup",

/* OBJECTS */
"thinger",
"myObject"

]

关于firefox - 在 Firefox 插件中有一个 "brain"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com