减少大型javascript操作对客户端明显滞后的方法
Methods to reduce apparent lag to client from large javascript operations
作为Chrome扩展的一部分,我正在对文档结束事件上的许多(超过3000)元素执行一些regex替换。在最坏的情况下,在相当不错的PC上的Chrome 34.0.1847.116米中,操作可能需要180秒以上才能完成,在此期间,网页被冻结。
有没有,如果有,在更长的时间内减轻操作的最佳方法是什么,或者给操作一个"较低优先级",这样在运行时就不会占用100%的时间。
该脚本几乎是嵌套的jQuery,每个函数都使用一个大表达式运行regex替换。这些表达式搜索3000-4000个单词,然后用一些html替换它。一个例子是(搜索特定的reddit名称)
/('s|/u/|^)(name1|name2|name3|...|name500)([^'w]|$)/
如果它有帮助,你可以在这里看到完整的来源。
谢谢你抽出时间。
您可以使用setTimeout
函数和完成时的回调在新线程中运行长操作。
参见Javascript Create New";线程";
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 加速了ajax/javascript,目前检索数据时滞后太多.必须有更好的方法
- 减少大型javascript操作对客户端明显滞后的方法
- 是否有一种方法来确定哪些计算机是滞后的,而不是使用javascript