如何使用开发人员控制台跟踪JavaScript性能

有一个通用规则适用于所有网站和应用程序: 它们必须快速 。 (几年前,我曾说过站点应该是响应式的 ,尽管这个词现在具有RWD的含义)。

不幸的是,很明显,一些开发人员并不关心站点速度。 如果他们这样做了,那么兆字节的怪兽将是罕见的,并且平均页面权重永远不会超过1Mb。 当我认为100Kb主页过大时,这几乎使我渴望拨号上网!

轻便,快速的用户体验从未如此重要。 发展中国家的移动和Web使用正呈指数级增长,而快速宽带从未如此丰富或廉价。 整理页面脂肪至关重要,因此优化JavaScript性能也至关重要。 幸运的是,有许多简单的方法可以确定脚本是否引起严重的延迟。

控制台计时

Firebug,Webkit Inspector,Opera Dragonfly和IE11都支持console.time()console.timeEnd()方法,例如

// start timer
console.time("DOM update");

// update
var p = document.getElementById("result");
for (var i = 0; i < 3000; i++) {
	p.textContent += i + " ";
}

// end timer
console.timeEnd("DOM update");

计时器名称将传递给console.time()console.timeEnd() 。 您可以运行任意数量的计时器:

// start "DOM update" timer
console.time("DOM update");

// update
var p = document.getElementById("result");

// start "loop" timer
console.time("loop");
for (var i = 0; i < 3000; i++) {
	p.textContent += i + " ";
}
// end "loop" timer
console.timeEnd("loop");

// end "DOM update" timer
console.timeEnd("DOM update");

结果显示在开发人员控制台中:

Firebug性能计时

分析时间戳记

另一个选择是时间戳记。 这仅在Firebug和Webkit检查器中可用-它在执行期间记录一个点,例如

// record timestamp
console.timeStamp("DOM update started");

// update
var p = document.getElementById("result");
for (var i = 0; i < 3000; i++) {
	p.textContent += i + " ";
}

// record timestamp
console.timeStamp("DOM update ended");

遇到时间戳时,将显示Firebug:

Firebug时间戳

这可能会有所帮助,但是Webkit Inspector还有一些技巧。 单击时间轴选项卡,然后单击窗口左下方的“ 记录”图标:

Webkit Inspector时间线记录

刷新页面,然后再次单击“ 记录”图标以停止记录。 时间线显示了所有事件的可视化表示形式,其中timeStamps在计时器栏中标记为黄色:

Webkit检查器时间表

很有用。

删除计时器

理想情况下,永远不要在生产代码中保留控制台日志。 如果这样做,则需要测试这些方法是否可用,因为它们会在不支持它们的浏览器中引起错误,例如

if (console && console.timeStamp) console.timeStamp("My timestamp");

就个人而言,我建议删除所有控制台命令。 一些构建过程将为您完成此操作,或者您可以在编辑器中使用以下正则表达式来定位和删除所有与计时器相关的日志记录:

console.time[^(]*("[^"]+");

打开控制台并开始优化这些脚本!

From: https://www.sitepoint.com/javascript-performance-developer-console/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值