waterfall 妙用

平时在做性能优化的时候,针对于场景的网络请求,一般可以从

  • dns 解析
  • tcp 建立链接
  • tls 握手
  • 请求资源
  • 响应时间
  • 下载时间
  • 请求时序

这里我以请求时序为切入点,因为其余的分析,要结合实际项目场景,来定位分析,对于请求时序,首先可以分析出来整体的数据流向,以及各个请求的前后逻辑顺序.

我一开始遇到的场景是,由于首屏订阅以及请求数量较多,超出1.5秒了,所以通过waterfall定位会发现,由于前置请求一些请求时序晚,导致后续所依赖的后置请求全部延后,同时一些请求非并发处理,导致为串行请求,非常依赖之前的请求速度.

定位到问题后,处理方案就很清晰了

  1. 针对请求时序晚的问题,通过分析数据流,将耗时长,的请求,统一前置,避免它们影响到后续请求的速度
  2. 对于非并发请求,将同批次,同类请求,全部并发并限制到6个以内,因为chrome浏览器本身有并发限制.

我以掘金首页为例子 明显发现,第一张图中,第二段的请求,在前面请求完成后,才执行,但是我看这些请求其实并不完全依赖前面的请求,因此全部并发处理,也没有什么,其次第二张图,请求与请求之间,没有紧挨着,说明这些请求非常滞后,影响到了整个首屏加载速度,完全可以全部提前加载.

相关推荐
合作小小程序员小小店4 分钟前
web渗透PHP反序列化漏洞
前端·网络协议·web安全·网络安全·安全威胁分析
再学一点就睡6 小时前
初探 React Router:为手写路由筑牢基础
前端·react.js
悟空聊架构6 小时前
5 分钟上手!Burp 插件「瞎越」一键批量挖垂直越权
前端
炒毛豆7 小时前
vue3+antd实现华为云OBS文件拖拽上传详解
开发语言·前端·javascript
Pu_Nine_97 小时前
Axios 实例配置指南
前端·笔记·typescript·axios
红尘客栈27 小时前
Shell 编程入门指南:从基础到实战2
前端·chrome
前端大卫8 小时前
Vue 和 React 受控组件的区别!
前端
Hy行者勇哥8 小时前
前端代码结构详解
前端
练习时长一年8 小时前
Spring代理的特点
java·前端·spring
水星记_9 小时前
时间轴组件开发:实现灵活的时间范围选择
前端·vue