我必须制作一个Firefox插件,用于搜索加载页面上的单词列表(可能包含6500个单词),并突出显示匹配项并显示悬停时的同义词。在firefox addon sdk中运行pageMod后台线程?
所以我使用HightlightRegex.js遍历dom和基于正则表达式使用正则表达式搜索\ bMyWord \ b。
最主要的问题是,当在有多次搜索词出现的页面上测试插件时,Firefox挂起一段时间(5-6秒),然后显示高亮显示。这发生在1个单词中,所以我可以想象如果我搜索6500个单词会发生什么。
那么有没有什么办法可以在后台线程或异步运行pageMod,并在不冻结UI的情况下突出显示单词?
你可以看看附加在https://builder.addons.mozilla.org/addon/1042263/latest/
目前该加载项是不依赖于单独的选项卡,并运行作为一个整体上的浏览器,但我怀疑这会导致Firefox挂起。
我需要尽可能有效地做到这一点,所以建议非常受欢迎。
请您详细说明一下吗?即使我在setTimeout中执行搜索,在设置超时函数正在运行时也不会执行该搜索。一个简单的例子来解释这一点会很有帮助。 – 2012-04-25 05:12:47
@PankajKumar:是的,它会阻止 - 这就是为什么只有一个小块应该在一个超时处理。然后它应该调用'setTimeout()'并允许浏览器在处理下一个块之前处理事件。 – 2012-04-25 05:19:41