在分析jQuery代码行时,是否包括呈现时间?

When profiling lines of jQuery code, does it include rendering time?

本文关键字:包括呈 是否 时间 jQuery 代码      更新时间:2023-09-26

假设我正在测量执行jQuery函数所需的时间,例如:

<Start timer here>
$("#myImage").hide();
<End timer here>

在计时器代码中,它是否包含由于调用该方法而发生的任何回流或重绘?或者这种情况发生在一段时间之后(即消息被发布到队列中,然后稍后执行)?我如何测量回流/重漆需要多长时间?

Javascript执行通常不会阻塞流。通常情况下,重绘或回流是排队的,当当前JS线程执行完成时,浏览器会处理所有排队的动作。这是因为在完成所有JS修改后做一个布局比在每次更改后做一个布局更有效。因此,通常在计时器期间不会出现布局。

有一些属性,你可以在你的Javascript中请求依赖于一个精确布局的页面(没有绘制),请求这些属性可以强制布局在你的JS中间,这将显示在计时器中。关于什么可以强制在Javascript中间设置布局的详细信息,请参阅本文。

根据w3.org, performance.now不包括在重绘/屏幕渲染上花费的时间。

注意:由于now方法返回当前时间,当文档被隐藏[Page Visibility]或未完全激活[HTML5]时所花费的时间包含在此方法的目的中- W3.org.