前端性能监控window.performance的巧妙写法
performance常规用法
相信很多人都在使用window.performance来监控页面的性能。都会在页面onload后,去获取window.performance.timing
但如果真正分析过数据的人,都会发现window.performance.timing.loadEventEnd有些时候在onload时间触发后
还是为0
这时候可能有些人会延迟再重新获取一次
这里带来另外一种思路实现
performance万无一失的用法
(function(){
if (window.performance || window.webkitPerformance) {
var perf = window.performance || window.webkitPerformance;
var timing = perf.timing;
var navi = perf.navigation;
var timer = setInterval(function() {
if (0 !== timing.loadEventEnd) {
clearInterval(timer);
var data = {
url: window.location.href,
ua: window.navigator.userAgent,
dns :timing.domainLookupEnd - timing.domainLookupStart,
tcp :timing.connectEnd - timing.connectStart,
request : timing.responseEnd -timing.responseStart,
blank : timing.domLoading - timing.fetchStart,
domready : timing.domContentLoadedEventEnd - timing.fetchStart,
onload : timing.loadEventEnd - timing.fetchStart,
firstimagetime : 0,
isdirty : 0
};用了一个定时器去判断timing.loadEventEnd不等于0的时候才去上报。
这样的写法有两个好处
1 不必局限于onload方法了,可以在任何时候执行
2 保证loadEventEnd不为0,避免脏数据
好处多多...是不是要改进下上报的写法呢。
相关推荐
liduote 2020-10-16
Herorong 2020-08-25
PncLogon 2020-08-16
Johnny0 2020-08-14
bowean 2020-07-19
xxuncle 2020-06-14
ChinaGuanq 2020-05-09
林大夏 2019-11-07
sanlingwu 2019-10-05
haohong 2019-10-28
拿什么来拯救自己 2011-06-21
liduote 2019-09-24
月光恋九霄 2018-03-07
DuKeCan 2019-09-05
xzs 2018-05-16
MrHaoNan 2009-03-30
WinerChopin 2019-07-01