This commit is contained in:
qianguyihao 2021-01-17 16:36:46 +08:00
parent ba5f4b4b7a
commit b80ee60568

View File

@ -367,26 +367,26 @@ WebPageTest 在世界各地提供了非常多的服务器,在每个服务器
淘宝网站性能测试报告
- 2021年1月https://www.webpagetest.org/result/210115_DiCB_f1344d732760365151755e89765b2d37/
- 2020年6月https://webpagetest.org/result/200616_JK_78eebda338285ffe0c2e154ca5032839/
- 2021年1月https://www.webpagetest.org/result/210115_DiCB_f1344d732760365151755e89765b2d37/
JD网站性能测试报告
- 2021年1月https://www.webpagetest.org/result/210115_DiGT_8d7370e91230b7d077e40b7aafb485a5/
拿到 WebPageTest 报告之后我们来看看报告里的几个重点指标
![Xnip2021-01-16_13-14-24](/Users/meiyamin/Downloads//image/Xnip2021-01-16_13-14-24.png)
![](http://img.smyhvae.com/20210116_1314.png)
1摘要里的参数
1摘要里的参数如上图
- First Byte第一个请求的响应时间可以反映后台的处理能力以及网络回路的情况
- Start Render从白屏到首次渲染的时间
- Speed Index速度指数
- **Total Blocking Time**页面被阻塞导致用户不能交互的累计时间
![Xnip2021-01-16_13-15-04](/Users/meiyamin/Downloads//image/Xnip2021-01-16_13-15-04.png)
![](http://img.smyhvae.com/20210116_1315.png)
2详情里的参数**First View**
@ -394,7 +394,8 @@ First View展示的是首次访问时总的加载时间。这里面提供
点击进入 First View 的详情之后可以看到所有的资源请求都会在这里列出来如下
![Xnip2021-01-16_13-16-11](/Users/meiyamin/Downloads//image/Xnip2021-01-16_13-16-11.png)
![](http://img.smyhvae.com/20210116_1316.png)
@ -403,7 +404,7 @@ First View展示的是首次访问时总的加载时间。这里面提供
- CPU UtilizationCPU的使用情况
- 多张图片的资源请求
![Xnip2021-01-16_13-16-50](/Users/meiyamin/Downloads//image/Xnip2021-01-16_13-16-50.png)
![](http://img.smyhvae.com/20210116_1317.png)
上图中我们可以看到多张图片的开始请求时间都是相同的也就是说如果让资源做**并行加载**我们就可以加大地减少加载时间**最终所消耗的时间就由最大的图片来决定**这是一个很好的优化技巧至于具体是怎么实现的可以自行了解
@ -412,24 +413,20 @@ First View展示的是首次访问时总的加载时间。这里面提供
![](http://img.smyhvae.com/20210115-2250.png)
上面这张图的意思是302表示重定向也就是说这个资源已经不在原来请求的位置了需要重定向才能找到真实的位置这个地方其实可以做一个优化
> 不需要去访问之前的无效的资源可以直接去访问重定向后的那个资源
### 局域网部署 WebPageTest 工具
如果我们开发的页面还没有上线公网则无法访问这个时候我们也想通过WebPageTest看看网站的性能那要怎么办呢
我们可以在局域网部署 WebPageTest 工具具体方法可自行研究
## 使用LightHouse分析性能
我们之所以使用不同的性能测量工具是因为他们都有不同的特点WebPageTest 可以生成详细的性能测试报告 接下来要讲的 lighthouse 不仅可以帮我们生成测试报告还可以给出一些针对性的优化建议
### Lighthouse 介绍
![](http://img.smyhvae.com/20210115-1739.png)
@ -565,7 +562,7 @@ window.addEventListener('load', (event) => {
let timing = performance.getEntriesByType('navigation')[0];
console.log(timing.domInteractive);
console.log(timing.fetchStart);
let diff = timing.domInteractive - timing.fetchStart;
console.log("TTI: " + diff); // 打印 TTI 参数
})
@ -633,7 +630,7 @@ var type = connection.effectiveType;
function updateConnectionStatus() {
// type是之前的网络状态connection.effectiveType是当前最新的网络状态
console.log("Connection type changed from " + type + " to " + connection.effectiveType);
type = connection.effectiveType;
}
@ -646,13 +643,11 @@ connection.addEventListener('change', updateConnectionStatus);
Connection type changed from 4g to 3g
```
### 检测元素的可见状态方便做曝光埋点
### 检测元素的可见状态做曝光埋点
我们可以通过`IntersectionObserver`这个API来检测元素的可见状态
![](http://img.smyhvae.com/20210116-1119.png)
![](http://img.smyhvae.com/20210117_1635.png)
做曝光上报的埋点判断某个DOM或者某个楼层是否出现在视窗中出现了就收集数据上报给服务端
@ -664,43 +659,3 @@ Connection type changed from 4g to 3g
- [点击埋点和曝光卖点的封装](https://github.com/Hugohui/vueTrackSdk)
## 总结
```
```