Мне нужно сделать аддон Firefox, который ищет загруженную страницу по списку слов (потенциально 6500 слов), выделяет совпадения и показывает синонимы при наведении курсора.
Итак, я использую HightlightRegex.js, который проходит через dom и выполняет поиск на основе регулярного выражения, использующего регулярное выражение \bMyWord\b.
Основная проблема заключается в том, что при тестировании аддона на странице, где есть много вхождений искомого слова, Firefox зависает на некоторое время (5-6 секунд), а затем показывается выделение. Это происходит для 1 слова, поэтому можно только представить, что произойдет, если я найду 6500 слов.
Итак, есть ли способ запустить pageMod в фоновом потоке или асинхронно и выделять слова по мере их сопоставления без зависания пользовательского интерфейса?
Вы можете ознакомиться с надстройкой по адресу https://builder.addons.mozilla.org/addon/1042263/latest/
В настоящее время надстройка не привязана к отдельным вкладкам и работает как единое целое в браузере, но я сомневаюсь, что это приведет к зависанию Firefox.
Мне нужно сделать это максимально эффективно, поэтому предложения очень приветствуются.
setTimeout()
и разрешить браузеру обрабатывать события до обработки следующего фрагмента. 25.04.2012