全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2025-02-17_Web 性能优化 - 好家伙,5k 的 css 阻塞页面 FCP 800ms

您的位置:首页 >> 新闻 >> 行业资讯

Web 性能优化 - 好家伙,5k 的 css 阻塞页面 FCP 800ms 点击关注公众号,“技术干货”及时达! TTFB 和 FCP 之间为什么这么大差距在优化 Alibaba.com PC 新用户首页时候发现一个尴尬的问题,页面经过多轮优化 TTFB 已经相对而言可以接受,海外核心国家 90 分位数可以到 480ms 以内 理论上一个开启流式渲染、结构良好、 SSR 的页面,TTFB 和 FCP 之间的差距是可以控制在 2000ms 以内,而奇怪的是页面的 TTFB 和 FCP 的差距竟然达到 3000ms 也就是 HTML 推送到浏览器后没有第一时间上屏 看似没有什么问题的 HTML那么问题一定是处在页面结构上了,HTML 源码简化之后大概是这样的 !DOCTYPEhtml htmllang="en" head metacharset="UTF-8" metaname="viewport"content="width=device-width,initial-scale=1.0" titleAlibaba.com/title linkrel='preconnect'href='https://s.alicdn.com'/ linkrel="preload"href="https://s.alicdn.com/LCP图片.jpg"as="image"/ linkrel="stylesheet"type="text/css"href="https://s.alicdn.com/5k-页面通用样式.css"/ linkrel="stylesheet"type="text/css"href="https://s.alicdn.com/30k-页面主体内容.css"/ /head body header这里是一些没有图片的可视DOM元素/header divclass="content" ... imgsrc="https://s.alicdn.com/LCP图片.jpg"/ ... /div footer.../footer scriptsrc="https://s.alicdn.com/页面通用脚本.js"/script /body /html 这样的 HTML 结构从性能角度来看是不是没有什么大问题? 加个打点直呼好家伙关键是在国内网络情况下访问直接秒开,无法通过调试和看加载瀑布流直观发现问题,WebPageTest 测试数据也说得过去 百思不得其解后只能对关键时间进行打点上报,看看能不能从数据上发现什么异常 !DOCTYPEhtml htmllang="en" head metacharset="UTF-8" metaname="viewport"content="width=device-width,initial-scale=1.0" titleDocument/title linkrel='preconnect'href='https://s.alicdn.com'/ linkrel="preload"href="https://s.alicdn.com/LCP图片.jpg"as="image"/ scriptwindow._timing.css1_start=Date.now();/script linkrel="stylesheet"type="text/css"href="https://s.alicdn.com/5k-页面通用样式.css"/ scriptwindow._timing=window._timing.css1_end=Date.now();/script linkrel="stylesheet"type="text/css"href="https://s.alicdn.com/30k-页面主体内容.css"/ scriptwindow._timing.css2_end=Date.now();/script /head body header这里是一些没有图片的可视DOM元素/header divclass="content" ... imgsrc="https://s.alicdn.com/LCP图片.jpg"/ ... /div footer.../footer scriptsrc="https://s.alicdn.com/页面通用脚本.js"/script script //数据上报伪代码 report('css1',window._timing.css1_end-window._timing.css1_start); report('css2',window._timing.css2_end-window._timing.css1_end); /script /body /html 观测数据后瞠目结舌,虽然5k-页面通用样式.csssize 很小,但下载、解析时间均值(不是 90 分位数)达到 650ms,而30k-页面主体内容.css只需要 200ms 以内,两者加载顺序对掉后 css1、css2 的时间没有明显变化 scriptwindow._timing.css1_start=Date.now();/script linkrel="stylesheet"type="text/css"href="https://s.alicdn.com/30k-页面主体内容.css"/ scriptwindow._timing=window._timing.css1_end=Date.now();/script linkrel="stylesheet"type="text/css"href="https://s.alicdn.com/5k-页面通用样式.css"/ scriptwindow._timing.css2_end=Date.now();/script 说明主要时间用在了「首次」和 s.alicdn.com 建连,而不是下载。CSS 的解析会阻塞后面的 DOM 渲染,因此 FCP 元素不能上屏 首屏 CSS 内联了解了原因后对页面进行分析,发现首屏真正依赖的 CSS 代码在 4k 以内,为了避免 CSS 下载、解析对 DOM 渲染的阻塞,决定直接对首屏 CSS 内联,非首屏 CSS 下移到 DOM 之后 !DOCTYPEhtml htmllang="en" head metacharset="UTF-8" metaname="viewport"content="width=device-width,initial-scale=1.0" titleAlibaba.com/title linkrel='preconnect'href='https://s.alicdn.com'/ linkrel="preload"href="https://s.alicdn.com/LCP图片.jpg"as="image"/ style/*首屏需要的css*//style /head body header这里是一些没有图片的可视DOM元素/header divclass="content" ... imgsrc="https://s.alicdn.com/LCP图片.jpg"/ ... /div footer.../footer linkrel="stylesheet"type="text/css"href="https://非首屏css.css"/ scriptsrc="https://s.alicdn.com/页面通用脚本.js"/script /body /html 修改上线之后效果显著,在 TTFB 没有变化的情况下海外核心国家 90 分位数 FCP 直接下降 800+ms 限定条件当然因为 Alibaba.com 新用户首页有特殊的情况才能达到如此明显的效果 网速较慢用户第一次访问网站,没有和页面静态资源域名有过历史建连首屏依赖的 css 要足够小?https://web.dev/articles/extract-critical-css?hl=zh-cn为了最大限度地减少首次呈现的往返次数,应力求将首屏内容保持在 14 KB(压缩后)以内。TCP 连接无法立即使用客户端和服务器之间的全部可用带宽,它们都会进行慢启动,以避免连接过载,导致连接的数据量超出其可传输量。在此过程中,服务器会使用少量数据开始传输,如果它以完美状态到达客户端,则会在下次往返时将传输量加倍。对于大多数服务器,在第一次往返中可传输的最大数据包为 10 个数据包(约为 14 KB) ? 一些感悟对用户 90 分位数的性能优化策略和 Google CWV 建议的 75 分位数完全不同,很多优化方向需要对 HTTP 协议和浏览器渲染有深入理解才会灵光一现灵光一现是不靠谱的,性能优化没有银弹,很难根据经验提出通用解对所有场景生效,一定要依赖精准的数据分析来发现盲点认真对待每一行代码,极致的性能优化要求下 1/3 时间在分析数据,1/3 时间在重构代码,为之前的“差不多”还债点击关注公众号,“技术干货”及时达! 阅读原文

上一篇:2018-11-17_来了,John Lewis2018圣诞短片又暖到我了 下一篇:2023-12-25_十年 , 对于一家广告公司意味着什么

TAG标签:

16
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价