首页 web前端 js教程 作为前端开发工程师一定要关注三点的性能指标

作为前端开发工程师一定要关注三点的性能指标

Nov 18, 2017 pm 02:06 PM
关注 工程师

作为一个合格的前端开发工程师,你需要关注的几项性能指标你知道吗?今天就好好的给大家介绍一下,作为前端工程师你必须关注指标有哪三点

1.关于页面相应时间,有一条著名的“2-5-8原则”。当用户访问一个页面:

在2秒内得到响应时,会感觉系统响应很快;

在2-5秒之间得到响应时,会感觉系统的响应速度还可以;

在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但可以接受;

而超过8秒后仍然无法得到响应时,用户会感觉系统糟透了,进而选择离开这个站点,或者发起第二次请求。

 

对于一个网站如果希望抓住用户,网站的速度以及稳定性是首当其冲的。

 

从各式各样的前端监控平台中,你都可以获得页面很多的性能指标。本文将介绍几个几个比较关键的指标,并给出相应的优化思路。

2.开始渲染时间

该时间点表示浏览器开始绘制页面,在此之前页面都是白屏,所以也称为白屏时间。

该时间点可用公式Time To Start Render = TTFB(Time To First Byte) + TTDD(Time To Document Download) + TTHE(Time To Head End)表示。其中TTFB表示浏览器发起请求到服务器返回第一个字节的时间,TTDD表示从服务器加载HTML文档的时间,TTHE表示文档头部解析完成所需要的时间。在高级浏览器中有对应的属性可以获取该时间点。Chrome可通过chrome.loadTimes().firstPaintTime获取,IE9+可以通过performance.timing.msFirstPaint获取,在不支持的浏览器中可以根据上面公式通过获取头部资源加载完的时刻模拟获取近似值。开始渲染时间越快,用户就能更快的看见页面。

对于该时间点的优化有:

1)优化服务器响应时间,服务器端尽早输出

2)减少html文件大小

3)减少头部资源,脚本尽量放在body中

DOM Ready

该时间点表示dom解析已经完成,资源还没有加载完成, 这个时候用户与页面的交互已经可用了。用公式TimeTo Dom Ready = TTSR(Time To Start Render) + TTDC(Time To Dom Created) + TTST(Time To Script)可以表示。TTSR上面已经介绍过了,TTDC表示DOM树创建所耗时间。TTST表示BODY中所有静态脚本加载和执行的时间。在高级浏览器中有DOMContentLoaded事件对应,MDN上有关DOMContentLoaded事件描述的文档如下,

The DOMContentLoaded event is fired when the document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading (the load event can be used to detect a fully-loaded page).

详细规范可以查看W3C的HTML5规范。从MDN文档上可以看出该事件主要是指dom文档加载解析完成,看上去很简单,但是DOMContentLoaded事件的触发与css,js息息相关,现在有专门的名词Critical Rendering Path(关键呈现路径)来描述,在文章【关键呈现路径】中详细介绍了关键呈现路径对DOMContentLoaded的影响。

在不支持DOMContentLoaded事件的浏览器中可以通过模拟获取近似值,主要的模拟方法有:

1)低版本webkit内核浏览器可以通过轮询document.readyState来实现

2)ie中可通过setTimeout不断调用documentElement的doScroll方法,直到其可用来实现

具体实现方法可以参考主流框架(jquery等)的实现。 DOM Ready时间点意味着用户与页面可以进行交互了,因此越早越好,对于该时间点的优化有:

1)减少dom结构的复杂度,节点尽可能少,嵌套不要太深

2)优化关键呈现路径

3.首屏时间

该时间点表示用户看到第一屏页面的时间,这个时间点很重要但是很难获取,一般都只能通过模拟获取一个近似时间。一般模拟方法有:

1)不断获取屏幕截图,当截图不再变化时,可以视为首屏时间。可参考webPagetest的Speed Index算法;

2)一般影响首屏的主要因素是图片的加载,通过页面加载完后判断图片是否在首屏内,找出加载最慢的一张即可视为首屏时间。当然还需考虑其他细节,具体可参考【7天打造前端性能监控系统】

针对该时间点的优化有:

1)页面首屏的显示尽量不要依赖于js代码,js尽量放到domReady后执行或加载

2)首屏外的图片延迟加载

3)首屏结构尽量简单,首屏外的css可延迟加载

onload

该时间点是window.onload事件触发的时间,表示原始文档和所有引用的内容已经加载完成,用户最明显的感觉就是浏览器tab上loading状态结束。 

该时间点的优化方式有:

1)减少资源的请求数和文件大小

2)将非初始化脚本放到onLoad之后执行

3)无需同步的脚本异步加载

为了优化整站性能,页面onload的时候可以考虑做一些预加载,把其它页面需要用到的资源预先加载进来。

希望阅读了上面的文章,对您的前端开发道路上有所帮助。

相关阅读:

前端JS面试题

实用web前端JS与UI框架简介

web前端知识体系总结

以上是作为前端开发工程师一定要关注三点的性能指标的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

微博怎么不让别人看到我的关注?-微博怎么查看访客记录? 微博怎么不让别人看到我的关注?-微博怎么查看访客记录? Mar 18, 2024 am 11:22 AM

微博怎么不让别人看到我的关注?我们只需要把博主分类到【悄悄关注】这个分组里面,别人就看不到自己关注了他。1、打开手机微博,点击首页的【关注】。2、在“我的分组”中点击【悄悄关注】即可。微博怎么查看访客记录?1、微博测试的访客记录功能目前只有SVIP和VVIP可以看到,而且仅针对部分用户开放。2、用户可以在个人中心下方的【更多功能】里找到访客记录入口,可以查看访问人数、访问对象以及访问较为频繁的人。3、该功能仅向SVIP和VVIP用户开放,普通用户和普通会员用户暂时无法使用。4、总之,微博测试访客

《柯林斯词典》公布2023年度英国最受关注词汇:AI 《柯林斯词典》公布2023年度英国最受关注词汇:AI Nov 02, 2023 am 08:13 AM

【环球时报综合报道】据英国《卫报》10月31日报道,《柯林斯词典》评选出2023年度英国最受关注的词汇——人工智能(AI)。柯林斯出版社表示,选择“AI”作为年度词汇是因为它“发展速度如此之快”,以至于过去一年里,这个由首字母缩写组成的单词使用量增加了4倍。《柯林斯词典》对“AI”的释义是“利用计算机程序对人类心理功能进行的建模”。出版社总经理亚历克斯·比克罗夫特表示,“AI”无疑是2023年的焦点话题,“它在很短时间内变得无处不在,曾经听起来有些未来主义,但现在已作为日常技术融入我们的生活。”

微博怎么添加关注检测到首页_微博设置关注检测方法介绍 微博怎么添加关注检测到首页_微博设置关注检测方法介绍 Mar 30, 2024 pm 12:41 PM

1、进入微博后,点击【我】进入个人中心。2、选择【更多功能卡片】。3、找到微博关注一览,选择图中的【添加】。4、然后我们就可以看到功能卡片中添加了关注检测,在此直接点击就能进行个人信息的检测了。

java工程师是做什么 java工程师是做什么 Dec 22, 2023 pm 04:46 PM

Java工程师职责:1、Java工程师负责分析和理解客户或公司的需求,并根据这些需求设计软件解决方案,需要与客户或团队成员进行沟通,确保理解需求的准确性和完整性;2、Java工程师需要熟悉和掌握各种Java开发工具和框架;3、Java工程师还需要熟悉数据库管理系统,如MySQL、Oracle或SQL Server等;4、在开发过程中,Java工程师需要进行系统测试和调试等等。

前端工程师职责解析:主要做什么工作? 前端工程师职责解析:主要做什么工作? Mar 25, 2024 pm 05:09 PM

前端工程师职责解析:主要做什么工作?随着互联网的快速发展,前端工程师作为一个非常重要的职业角色,扮演着连接用户与网站应用程序的桥梁,起着至关重要的作用。那么,前端工程师主要做些什么工作呢?本文将对前端工程师的职责进行解析,让我们来一探究竟。一、前端工程师的基本职责网站开发与维护:前端工程师负责网站的前端开发工作,包括编写网站的HTML、CSS和JavaScr

如何判断一个抖音号是否值得关注?怎么测试账号有没有被限流? 如何判断一个抖音号是否值得关注?怎么测试账号有没有被限流? Apr 01, 2024 pm 05:37 PM

随着社交媒体的兴起,抖音已成为了年轻人喜爱的短视频平台之一。在海量的抖音账号中,有许多内容丰富、有趣的账号,也有一些质量低下、浮于表面的账号。那么,我们应该如何判断一个抖音号是否值得关注呢?一、如何判断一个抖音号是否值得关注?我们可以从账号的内容质量来判断它是否值得关注。一个优质的抖音号通常会提供有价值的内容,能够带给观众快乐、启迪或者思考。这些内容可以是精心剪辑的搞笑短视频,也可以是生活小技巧、美食制作或者旅行经验分享等。这些内容可以是精心剪辑的搞笑短视频,也可以是生活小技巧、美食制作或者旅行

微博关注领奖怎么做_微博关注领奖功能方法 微博关注领奖怎么做_微博关注领奖功能方法 Mar 30, 2024 pm 12:21 PM

1、首先选择点击微博。2、接着继续点击下方的我,选择去做关注任务4、选择自己的人物进行关注。5、完成5个人物关注后,进行领奖。6、获得微博关注的奖励。

Go语言开发工程师必看:这些大厂招聘情况一览! Go语言开发工程师必看:这些大厂招聘情况一览! Mar 04, 2024 pm 09:21 PM

Go语言开发工程师必看:这些大厂招聘情况一览!随着互联网行业的快速发展,Go语言作为一种高效、稳定和易于使用的编程语言,越来越受到企业的青睐。许多大型互联网公司纷纷开始招聘Go语言开发工程师,为了帮助有意从事该领域的开发者更好地了解市场需求,本文将为大家介绍一些知名大厂的招聘情况。腾讯科技:作为中国颇具影响力的科技巨头之一,腾讯一直在不断扩大其技术团队规模。

See all articles