检测导致冻结等问题的错误 JS

Detect bad JS that causes problems such as freezes

本文关键字:错误 JS 等问题 冻结 检测      更新时间:2023-09-26

我写了一个JS脚本,它似乎工作正常。但是,在随机点,它会使浏览器冻结。后者尤其在移动设备上很快/经常发生。是否有任何工具可以检查哪个部分搞砸了,即可能需要太多的RAM/CPU?

我知道Chrome DevTools中有诸如"配置文件"之类的东西,但是我没有足够的经验来了解问题所在。如果这样做是正确的,有什么指示吗?

提前感谢!

要记住的主要事情是JavaScript是单线程的。如果一个函数需要很长时间,那么它将阻塞事件循环,因此其他函数无法运行。例如,您在jQuery中找到的动画通过在计时器上重复调用函数来工作。如果函数阻塞事件循环,则根据您的页面和其中的内容,许多功能可能会降级,浏览器可能会冻结。

因此,大多数问题都是由执行时间过长的函数引起的。

"配置文件"是用于此的好东西。启动配置文件,运行您的页面,直到发生"坏"事件,然后查看结果。Chrome 将按照执行时间的顺序列出函数。如果你发现一个函数花费的时间比你想象的要多,那就是你的罪魁祸首。调用函数的次数越多,执行所需的时间就越多,但是如果您编写了代码,那么您应该知道调用各种函数的频率。