我必須製作一個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