什么是TTFB呢?
1.TTFB (Time To First Byte),是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了 TCP链接时间,发送HTTP请求时间和得到响应消息第一个字节的时间。
注意:网页重定向越多,TTFB越高,因此要减小重定向
TTFB优化的方法有:前端
1.减小DNS查询浏览器
2.使用CDN性能优化
3.提前Flush服务器
4.添加周期头网络
什么是TTSR呢?
2.TTSR(Time to Start Render)
TTSR-开始渲染时间,指某些非空元素开始在浏览器显示时的时间,这也是一项重要指标,即TTSR越短,用户越早浏览器中的内容,心理上的等待时间会越短。过多的CPU消耗会拖慢TTSR,因此网站中有大量图片和脚本每每会形成不良用户体验。异步
注意
TTSR优化:
1.优化TTFB
2.下降客户端CPU消耗,即页面加载初期不要有大脚本运行,把JS脚本放到页面下方
3.使用效率较高的CSS选择器,避免使用CSS表达式
4.避免使用CSS滤镜socket
前端TTSR测试脚本:
tcp
<head> <script> (function(){ var timeStart = + new Date, limit = 1, timer = setInterval(function(){ if((document.body&&document.body.scrollHeight > 0) || (limit++ == 500)){ clearInterval(timer); console.info('TTSR:',+ new Date - timeStart,';duration:',limit); } },10); })() </script> </head>
在页面端没法简单测试出具体的TTSR,不过能够经过模拟脚本获得大概的时间,Firefox提供了一个MozAfterPaint事件,经测试,用于TTSR并不许确,若是有MozBeforePaint事件该有多好。
性能
什么是TTDC呢?
3.TTDC(Time to Document Complete)
TTDC-文档完成时间,指页面结束加载,可供用户进行操做的时间,等价于浏览器的onload事件触发点。TTDC是比较重要的性能优化对象,TTDC越低,页面加载速度越快,用户等待时间越短。
注意
TTDC的优化方法有:学习
1.优化TTFB
2.优化TTSR
3.优化首屏时间,将没必要要的页面加载放到onload事件以后
TTDC前端测试:
常见性能测试平台大多使用IE浏览器的DocumentComplete事件来度量TTDC,DocumentComplete事件触发时,页面的状态应是READYSTATE_COMPLETE,因此在页面中咱们能够用JS脚本判断:
var win = window,doc = document; if(win.attachEvent || doc.hasOwnProperty('onreadystatechange')){ doc.onreadystatechange = function(){ if(doc.readyState == 'complete'){ /** * test do something... */ } } }else{ win.addEventListener('load',function(){ /** * test do something... */ },false); }
什么是TTFL呢?
4.TTFL(Time to Fully Loaded)
TTFL-彻底加载时间,指页面在onload以前和onload事件以后额外加载的内容所花费的时间的总和,即页面完彻底全加载完毕消耗的总时间。
注意
TTFL的优化方法:
1.优化TTFB
2.优化TTSR
3.优化TTDC
4.延迟加载
5.异步加载
6.按需加载
=======================================================================================================================================================
如何优化网页首字节时间 1: 看一下详情分析页面。 DNS解析:若是是 DNS 解析时间太长,那是你的域名解析服务器很差,请更换靠谱的 NS 服务器。 初始化链接:若是是初始化链接的时间太长,那是你机房的网络很差,请更换更好的机房 若是上面两个都不是。那就是你的代码性能很差,代码执行消耗的时间太长。请优化代码,或者更换更好的机器。 2: 客户端t1时刻发起对于某个url的请求,通过DNS解析获取相应的IP地址后,发起对该IP地址的socket链接,在完成三次握手创建tcp链接后,客户端发送http请求信息,服务端收到请求后返回响应的内容,当客户端在t2时刻收到服务端返回内容的第一个字节,则第一字节时间=t2-t1。 第一字节的时间= DNS解析的时间+socket三次握手时间+http请求时间+第一字节返回的时间。 首字节的时间是0,说明很快呀。不须要作优化。 谢谢使用阿里测!