在分析jQuery代码行时,它是否包含渲染时间?

时间:2015-09-24 06:00:31

标签: javascript jquery profiling

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

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

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

2 个答案:

答案 0 :(得分:0)

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

  

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

答案 1 :(得分:0)

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

您可以在Javascript中请求一些属性,这些属性依赖于精确布局的页面(尽管没有绘制),并且请求这些属性可以强制在JS中间布局,这将显示在计时器中。有关可以在Javascript中间强制布局的内容的详细信息,请参阅this article