从大型JavaScript操作中减少客户端明显滞后的方法

时间:2014-04-14 06:55:41

标签: javascript jquery regex google-chrome-extension

作为Chrome扩展程序的一部分,我正在对文档结束事件中的许多(超过3000个)元素执行一些正则表达式替换。在最糟糕的情况下,在相当不错的PC上的Chrome 34.0.1847.116 m中,操作可能需要180秒才能完成,在此期间,网页将被冻结。

是否存在,如果是,那么在较长时间范围内缓解操作的最佳方法是什么,或者为操作提供"较低优先级" 以便它跑步时不会100%。

该脚本几乎是嵌套的jQuery,每个函数都使用大表达式运行正则表达式替换。这些表达式搜索3000-4000个单词,然后用一些html替换它。一个例子是(搜索特定的reddit名称)

/(\s|/u/|^)(name1|name2|name3|...|name500)([^\w]|$)/

如果有帮助,您可以看到完整的来源here

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

您可以使用setTimeout函数在新线程中运行长操作,并在完成时回调。

请参阅Javascript Create New "Thread"