Page 172 - Web性能权威指南
P. 172
最后,除了 Navigation Timing,W3C Performance Group 还标准化了另外两个 API:
User Timing 和 Resource Timing。Navigation Timing 只针对根文档提供性能计时器,
Resource Timing 则针对页面中的每个资源都提供类似的性能数据,可以让我们收集
到关于页面的完整性能数据。类似地,User Timing 也是一个简单的 JavaScript API,
可以标记和度量特定应用的性能指标,提供高精确度的计时结果:
function init() {
performance.mark("startTask1"); ➊
applicationCode1(); ➋
performance.mark("endTask1");
logPerformance();
}
function logPerformance() {
var perfEntries = performance.getEntriesByType("mark");
for (var i = 0; i < perfEntries.length; i++) { ➌
console.log("Name: " + perfEntries[i].name +
" Entry Type: " + perfEntries[i].entryType +
" Start Time: " + perfEntries[i].startTime +
" Duration: " + perfEntries[i].duration + "\n");
}
console.log(performance.timing); ➍
}
➊ 存储(标记)时间戳,并命名(startTask1)
➋ 执行应用代码
➌ 迭代和记录用户计时数据
➍ 记录当前页面的 Navigation Timing 对象
综合运用 Navigation、Resource 和 User 计时 API,可以对每个 Web 应用的真实用
户性能进行度量,再也不要说没有精确的数据了!优化要以度量为依据,RUM 和人
造测试是互为补充的手段,可以帮我们发现回归现象和真正的瓶颈,提升应用的用
户体验。
可靠的性能优化策略源自特定于应用的自定义指标。不存在唯一度量和定
义用户体验的方式。相反,我们必须针对每个应用定义和设计特定的里程
碑和活动,这是一个涉及所有干系人(公司老总、设计师和开发人员)的
协作过程。
10.5 针对浏览器的优化建议
不得不说,浏览器可远远不止一个网络套接字管理器那么简单。性能可以说是每个
浏览器开发商的核心卖点,既然性能如此重要,那浏览器越来越聪明也就毫不奇怪
Web性能要点 | 157