waterfall 妙用

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

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

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

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

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

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

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

相关推荐
用户01360875668833 分钟前
前端实现文件上传功能
前端
咖啡の猫1 小时前
Vue-github 用户搜索案例
前端·vue.js·github
yong99901 小时前
响应式布局新利器:CSS Grid 的 grid-template-areas 实战
前端·css
咖啡の猫1 小时前
Vue过度与动画
前端·javascript·vue.js
IT_陈寒1 小时前
Python数据处理速度慢?5行代码让你的Pandas提速300% 🚀
前端·人工智能·后端
蒜香拿铁1 小时前
Angular【起步】
前端·javascript·angular.js
护国神蛙1 小时前
HTTP 重定向踩坑实录:307、301、308 问题排查全指南
前端·网络协议
初心丨哈士奇1 小时前
前端Vibe Coding探索:Cursor+MCP打造沉浸式开发流(使用MCP与Cursor Rules让Vibe Coding更快速与精准)
前端·人工智能
Hilaku1 小时前
前端开发,真的有必要学Docker吗?
前端·javascript·docker
安迪西嵌入式1 小时前
数据平滑处理算法03——中心移动平均
java·前端·算法