在 Javascript 中进行长时间运行的计算时如何避免冻结浏览器

2023-11-24

我有一个网页,其中函数中的 JavaScript 计算需要花费大量时间才能完成,并使页面冻结。当计算在后台进行时,我应该使用什么技术来确保 javascript 不会冻结浏览器?


如果您只需要进行计算并且不需要在长时间运行的计算过程中访问 DOM,那么您有两种选择:

  1. 您可以将计算分解为多个部分,然后一次执行一个部分setTimeout()。在各个setTimeout()调用后,浏览器将可以自由地服务其他事件,并使页面保持活动状态并响应。当你完成最后一部分计算后,你就可以执行结果了。
  2. 您可以在现代浏览器中使用网络工作者在后台运行计算。当计算在 webworker 中完成时,它会向主线程发送一条消息,然后您可以使用结果更新 DOM。

这是一个相关的答案,也显示了一个示例:在不阻塞 UI 的情况下迭代数组的最佳方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Javascript 中进行长时间运行的计算时如何避免冻结浏览器 的相关文章