【发布时间】:2010-11-22 08:19:58
【问题描述】:
是否有工具可以测量页面上元素的实际渲染时间?我不是指资源的下载时间,而是浏览器渲染某些东西的实际时间。我知道这个时间会根据客户端机器上的因素而有所不同,但在了解渲染引擎需要一段时间加载时仍然非常方便。我想这应该是一个有用的实用程序,因为 Web 应用程序现在变得非常繁重。有什么想法吗?
【问题讨论】:
标签: html performance browser rendering
是否有工具可以测量页面上元素的实际渲染时间?我不是指资源的下载时间,而是浏览器渲染某些东西的实际时间。我知道这个时间会根据客户端机器上的因素而有所不同,但在了解渲染引擎需要一段时间加载时仍然非常方便。我想这应该是一个有用的实用程序,因为 Web 应用程序现在变得非常繁重。有什么想法吗?
【问题讨论】:
标签: html performance browser rendering
Firebug for Firefox 已将其集成到“Net”-Tab 中。
需要火狐(我是用12.0版做的)配置修改,地址栏输入about:config然后搜索dom.send_after_paint_to_content
将dom.send_after_paint_to_content 设置为真。
除了蓝色 (DOMContentLoaded) 和红色(加载)线之外,MozAfterPaint 然后在网络加载时间线中绘制为绿色的小垂直线。
【讨论】:
我一直在使用这个脚本来分析一些页面的渲染时间:
<script language="JavaScript">
<?
$output = str_replace('=', 'A', base64_encode(file_get_contents('data.txt')));
echo "\tCode = \"" . substr($output, 0, 512) . "\"";
$size = strlen($output);
for ($i = 512; $i < $size; $i += 512)
echo "\n\t + \"" . substr($output, $i, 512) . "\"";
echo ";\n";
?>
Data = "";
Dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
j = Code.length -3;
for (i = 0; i < j; i += 4) {
Data += String.fromCharCode(((Dict.indexOf(Code.charAt(i )) << 2) | (Dict.indexOf(Code.charAt(i + 1)) >> 4)) & 0xff);
Data += String.fromCharCode(((Dict.indexOf(Code.charAt(i + 1)) << 4) | (Dict.indexOf(Code.charAt(i + 2)) >> 2)) & 0xff);
Data += String.fromCharCode(((Dict.indexOf(Code.charAt(i + 2)) << 6) | (Dict.indexOf(Code.charAt(i + 3)) )) & 0xff);
}
time_start = (new Date).valueOf()/1000;
document.write(Data);
time_elapsed = (new Date).valueOf()/1000 - time_start;
alert(time_elapsed);
</script>
部分 PHP,部分 JavaScript。 data.txt 是包含要分析的 HTML 的文件。 在 IE 和 FF 上测试。
【讨论】:
我建议使用 YSlow。
它不仅测量页面中元素的性能时间,还分析您的页面设计,以建议您如何改进性能。 这是他们开发 Stack Overflow 时使用的工具之一。
YSlow 分析网页并提出建议 提高他们绩效的方法 基于一套高规则 性能网页。 YSlow 是一个 Firefox 插件与 Firebug 网络开发工具。慢 根据三个之一对网页进行评分 预定义的规则集或用户定义的 规则集。它提供建议 提高页面的性能, 总结页面的组件, 显示有关页面的统计信息, 并提供性能工具 分析,包括 Smush.it™ 和 JSLint。
【讨论】: