加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

深入理解前端性能监控

发布时间:2019-04-09 07:33:44 所属栏目:建站 来源:腾讯新闻前端团队
导读:在同样的网络环境下,有两个同样能满足你的需求的网站,一个唰的一下就加载出来了,另一个白屏转圈转了半天内容才出来,如果让你选择,你会用哪一个? 页面的性能问题是前端开发中一个重要环节,但一直以来我们没有比较好的手段,来检测页面的性能。直到W3

对我们比较有用的页面性能数据大概包括如下几个,这些参数是通过上面的performance.timing各个属性的差值组成的,它是精确到毫秒的一个值,计算方法如下:

  •  重定向耗时:redirectEnd - redirectStart
  •  DNS查询耗时 :domainLookupEnd - domainLookupStart
  •  TCP链接耗时 :connectEnd - connectStart
  •  HTTP请求耗时 :responseEnd - responseStart
  •  解析dom树耗时 : domComplete - domInteractive
  •  白屏时间 :responseStart - navigationStart
  •  DOMready时间 :domContentLoadedEventEnd - navigationStart
  •  onload时间:loadEventEnd - navigationStart,也即是onload回调函数执行的时间。

如何优化?

重定向优化:重定向的类型分三种,301(永久重定向),302(临时重定向),304(Not Modified)。304是用来优化缓存,非常有用,而前两种应该尽可能的避免,凡是遇到需要重定向跳转代码的代码,可以把重定向之后的地址直接写到前端的html或JS中,可以减少客户端与服务端的通信过程,节省重定向耗时。

DNS优化:一般来说,在前端优化中与 DNS 有关的有两点: 一个是减少DNS的请求次数,另一个就是进行DNS预获取(Prefetching ) 。典型的一次DNS解析需要耗费 20-120 毫秒(移动端会更慢),减少DNS解析的次数是个很好的优化方式,尽量把各种资源放在一个cdn域名上。DNS Prefetching 是让具有此属性的域名不需要用户点击链接就在后台解析,而域名解析和内容载入是串行的网络操作,所以这个方式能减少用户的等待时间,提升用户体验 。新版的浏览器会对页面中和当前域名(正在浏览网页的域名)不在同一个域的域名进行预获取,并且缓存结果,这就是隐式的 DNS Prefetch。如果想对页面中没有出现的域进行预获取,那么就要使用显示的 DNS Prefetch 了。下图是DNS Prefetch的方法:

  1. <html>  
  2. <head>  
  3.   <title>腾讯网</title>  
  4.   <link rel="dns-prefetch" href="//mat1.gtimg.com"  />  
  5.   <link rel="dns-prefetch" href="//inews.gtimg.com"  />  
  6.   <link rel="dns-prefetch" href="//wx.qlogo.cn"  />  
  7.   <link rel="dns-prefetch" href="//coral.qq.com" />  
  8.   <link rel="dns-prefetch" href="//pingjs.qq.com"  /> 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读