场景说明:当用户访问一个新网站时,首次绘制(FP)就像是网站的大门第一次打开。用户期待着的不只是白色的加载屏幕;他们希望有个迹象表明网站正在努力加载。
为何重要:即使内容还未完全到位,FP给了用户一个信号——你的网站在工作。在竞争激烈的互联网上,每个微小的优势都可能决定用户是否留下来。
前端工程师行动:优化服务器响应时间,使用CDN,确保CSS和JavaScript尽可能快地加载,以便用户能够迅速看到第一帧画面。
场景说明:用户看到网站上的第一个文本块、图像、SVG或其他内容元素时,这就是首次内容绘制(FCP)。在电子商务网站上,这可能是产品图片或优惠信息。
为何重要:FCP是告诉用户“有价值的东西正在到来”的第一个明确信号。这不仅是关于速度,更是关于如何迅速吸引用户的注意力。
前端工程师行动:优化图像大小和格式,对关键的CSS进行内联处理,以及推迟非关键JavaScript的加载,都可以加快FCP。
场景说明:用户不仅仅需要看到内容,他们需要看到对他们有意义的内容。在新闻网站上,首次有意义绘制(FMP)可能是新闻标题和摘要;在博客中,可能是文章的开头。
为何重要:FMP直接关系到用户的首次深度印象。如果用户迅速看到了他们期望的内容,他们更可能继续阅读和探索。
前端工程师行动:分析哪些内容对用户最有价值,并确保这些内容优先加载。考虑使用服务端渲染或静态生成页面,以减少首次有意义绘制的时间。
场景说明:页面可交互意味着用户可以点击按钮、输入文本和进行导航。例如,在一个交互式教育平台,TTI是用户开始回答问题或进行测验的那一刻。
为何重要:用户对互动有着即时的预期。一个慢的TTI会导致用户感到挫败,甚至在页面准备好之前就离开。
前端工程师行动:优化JavaScript执行,分割代码以按需加载,利用浏览器的预加载能力,并减少主线程上的工作量。
场景说明:在网页访问过程中,TTFB是用户请求被服务器接收并开始处理的标志。在云端服务中,一个低TTFB意味着服务迅速响应,数据正在路上。
为何重要:用户往往不知道后端的复杂性,但他们会感受到延迟。一个快速的TTFB表示强大
的后端性能和良好的用户体验。
前端工程师行动:确保服务器性能优化,数据库响应迅速,考虑使用缓存策略,如Redis,减少数据库查询时间。
场景说明:DCL发生在整个页面的HTML被加载和解析后,但不包括如样式表、图像和框架等资源。在一个复杂的申请表格页面,DCL是表单结构准备就绪的时刻,用户准备开始填写。
为何重要:在DCL之后,JavaScript通常开始执行,为页面带来额外的功能。一个快速的DCL可以使页面更早地对用户有用。
前端工程师行动:简化DOM元素,减少HTML的大小,推迟非关键资源的加载,并优化服务器端渲染。
场景说明:用户正在阅读一个精彩的文章,如果文中的图片或广告突然加载并导致内容跳动,这就产生了布局偏移。CLS衡量这种稳定性的缺乏。
为何重要:稳定的页面布局让用户可以专注于内容,而不是被突然的变化分心。一个低的CLS意味着更可靠的用户体验。
前端工程师行动:为图像和视频指定尺寸,确保广告元素有一个明确的占位符,避免在页面加载时插入新内容。
场景说明:用户访问一个产品页面,LCP可能是产品图片的加载。这个图像不仅是页面上最大的内容,也是最能吸引用户注意的部分。
为何重要:LCP直接影响到用户是否愿意等待了解更多信息。如果关键内容迅速显示,用户会有更好的参与感。
前端工程师行动:优化最大的内容元素,如主图像或视频,以快速加载。使用下一代格式,如WebP,减少资源大小,并确保快速的内容交付网络。
一个网页的性能优化旅程始于准确地衡量它的当前状态。以下是前端工程师可以使用的工具和策略,以确保他们拥有所需的数据来优化性能。
Lighthouse:
WebPageTest:
Chrome DevTools:
减少JavaScript执行时间:
优化图片和媒体文件:
减少网络请求的往返次数:
利用浏览器缓存:
Cache-Control
,并确保缓存策略符合你的更新需求。避免不必要的重绘和重排:
width
、`height或
top,改用
transform`。
精简和合并资源文件:
使用Service Workers:
优化字体加载:
font-display: swap;
在CSS中,以便在字体文件下载时显示默认字体。考虑使用字体子集化,只包含需要的字符。扁平化CSS选择器:
延迟加载非关键内容:
loading="lazy"
属性或使用JavaScript库,如IntersectionObserver
,来实现图片和视频的懒加载。预连接和DNS预取:
<head>
中使用<link rel="preconnect">
和<link rel="dns-prefetch">
来指示浏览器预先连接到使用的CDN或其他域名。避免昂贵的JavaScript和CSS:
box-shadows
、gradients
、filters
)在渲染时特别消耗资源。使用Web Workers:
更多【性能优化-什么是性能优化?如何性能优化?】相关视频教程:www.yxfzedu.com