gpt4 book ai didi

javascript - 测量由 Javascript 发起的更改渲染时间

转载 作者:搜寻专家 更新时间:2023-11-01 04:37:11 26 4
gpt4 key购买 nike

我想测量显示由 javascript 实际完成的 DOM 更改所花费的时间。

考虑这个示例 svg 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="1600"
height="1000"
version="1.1">
<script xlink:href="clicktest.js" />
<defs>
<filter id="filterBlur" x="-0.6" width="2.2" y="-0.6" height="2.2">
<feGaussianBlur stdDeviation="120" />
</filter>
</defs>
<rect y="50" x="50" height="100" width="200" style="fill:#ff0000" onmousedown="red()" />
<rect y="50" x="300" height="100" width="200" style="fill:#0000ff" onmousedown="blue()" />
<circle cx="800" cy="600" r="300" id="circle"
style="fill:#888888;filter:url(#filterBlur)" />
<text id="time" x="1250" y="50" style="font-size:40px">time...</text>
<rect x="900" y="300" width="600" height="600"
style="fill:#650088;fill-opacity:0.5;filter:url(#filterBlur)" />
<rect x="100" y="400" width="300" height="400"
style="fill:#999900;fill-opacity:0.5;filter:url(#filterBlur)" />
</svg>

这会显示两个 rect,它们充当更改圆圈颜色的“按钮”。额外的 rect 以及模糊和不透明是为了让它更慢。

脚本:

function blue()
{
var startTime = performance.now();
document.getElementById('circle').style.fill = '#0000ff';
var endTime = performance.now();
document.getElementById('time').textContent = (endTime - startTime).toString();
}

function red()
{
var startTime = performance.now();
document.getElementById('circle').style.fill = '#ff0000';
var endTime = performance.now();
document.getElementById('time').textContent = (endTime - startTime).toString();
}

现在单击时,将显示不到 1 毫秒的时间,但是,显然(在我的计算机上)需要将近一秒钟才能实际显示更改的颜色(顺便说一句,Chrome 似乎比 Firefox 快).

如何测量从点击开始到渲染完成结束的时间?

最佳答案

1.打开 Chrome(空白)
2.打开开发者工具(F12)
3.移至“时间线”标签
4.点击记录。
5.在 chrome 中粘贴您的 URL 并单击输入。
6. 等待页面完全加载。
7.停止录音。
我想您会在那里找到答案。

这是您在 chrome 时间轴上的源结果示例:

enter image description here

编辑:有关 JavaScript 执行和结果呈现时间的更多详细信息,您可以使用“DynaTrace”或“SpeedTracer”(使用这些工具之一的样子是 HERE)

关于javascript - 测量由 Javascript 发起的更改渲染时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com