回顾2022:Web性能方面有哪些新功能

简介: 回顾2022:Web性能方面有哪些新功能

本文翻译自 2022-in-web-performance,略有删改

我们衡量和优化网站速度的方式总是在变化。因为有新的Web标准被引入(并最终得到广泛支持),新的工具被开发,新的度量标准被提出。本文介绍了2022年Web性能格局发生变化的事项。

优先级提示

优先级提示是我今年见过的影响最大的浏览器功能,在优化LCP(Largest Contentful Paint)时只需将fetchpriority="high"属性添加到您最重要的图像:

<img src="/hero.png" fetchpriority="high">

这将告诉浏览器在加载低优先级资源之前发出此请求。

默认情况下,图像请求的优先级较低,渲染页面后,折叠上方图像的优先级会增加。添加fetchpriority=high意味着浏览器可以立即启动图像请求。

7504808d2f54795cd8f77482acba382.png

Chrome中不再有OSCP请求

在线证书状态协议(OCSP)允许浏览器检查给定的SSL证书是否已被吊销。如果网站使用扩展验证证书,则Chrome在建立连接时会进行这些检查。

下面的请求瀑布显示了作为SSL连接(紫色)的一部分的OCSP请求(灰色)的示例。基本上,第二个请求是作为HTML文档请求的一部分进行的。

0e00e06c12e640488881de8a2c61063.png

Chrome 在 106 版本中停止了OSCP请求。对于使用扩展验证证书的站点,这提供了显著的性能改进。

ce95b586e1d46f55f235c9930f9d66a.png

与下一次绘制的交互

Interaction to Next Paint(INP)是Google的一项新指标,用于衡量页面对用户输入的响应速度。它测量用户交互(如单击或按键)与下一次屏幕更新之间的时间间隔。

d53a2858883d79825ce262fc699b63a.png

INP可能最终取代第一输入延迟(FID)作为网页核心性能指标之一。

由于INP还包括处理时间和呈现延迟,因此它具有比第一输入延迟更高的值。它还查看最慢的页面交互之一,不像FID只查看第一个页面。

ea098c50097f63a9644d27b6383f89a.png

Chrome中的后退/前进缓存

许多页面导航只是浏览器历史记录中的向后/向前移动。移动的浏览器长期以来一直试图通过保存页面状态并恢复它来加速这些导航。

Chrome的后退/前进缓存现在已经在移动的和桌面上全面推出。从技术上讲,这一变化发生在2021年11月,但值得强调的是,积极影响直到今年才完全显现出来。

db4dd29d35e0b38fbd0a885ea275161.png

HTTP/3标准化

浏览器长期以来一直在试验 HTTP/3协议 ,但最终还是 标准化2022年6月。

HTTP/3实现了几个性能目标,例如减少建立连接的网络往返次数,并使移动的用户在不同网络之间移动时更容易迁移连接。

23c481e5be27ce1c46fb2d838f6b946.png

关于哪些请求阻止了渲染

渲染块的请求对于性能是重要的,因为它们的阻止呈现将影响整个页面。但有时很难识别。幸运的是,Chrome已经开始报告有关请求是否被渲染阻止的更多细节,如下图所示:

f9e53197330f829dafc688c6488fa19.png

Resource Timing API 现在也会报告renderBlockingStatus属性。

341a013470e11302f779b9da5bb21c9.png

DevTools中新的Performance Insights选项卡也显示了这些数据。

59a0523681cc6881f10176244214a84.png

Chrome DevTools性能洞察面板

DevTools Performance选项卡显示了一个网站的真正全面的视图,但它并没有对信息进行优先级排序和生成见解。Chrome DevTools中新的 Performance Insights 选项卡旨在更轻松地识别影响网站性能的问题。

a3732f4e079d530c5877701c062d9d3.png

它显示了一系列与性能相关的洞察,然后提出了可能的修复建议。

abe311994be47b43d4054adf774767d.png

103状态码

浏览器资源提示告诉浏览器在需要资源之前加载资源或创建服务器连接。103 HTTP状态码允许Web服务器在完整的HTML响应准备好之前告诉浏览器未来需要的资源。

这样,浏览器可以在服务器仍在处理请求时开始加载这些资源。例如,渲染阻止样式表或Web字体可以提前开始加载,或者浏览器可以预连接到API子域。

这在使用CDN时尤其有用。CDN提供与用户的位置紧密相关的服务器。在将文档请求发送到主网站服务器进行处理之前,它可以在几毫秒内返回一个早期的103响应。

Chrome中的全页预渲染

有时用户很可能很快就会导航到一个新页面,自11月发布108版以来,Chrome将在实际导航之前开始加载页面。

当导航发生时,在后台加载的页面被“前景化”,可能会立即呈现。

例如,当我在地址栏中输入“ads”时,Chrome有83%的把握认为我将访问ads.twitter.com,因此当我开始输入时,它会预加载该页面。(查看chrome://predictors/以查看有关您自己的浏览行为的信息。)

57bb6fefee045e8ddda90d833a9e464.png

网站还可以使用推测规则API来告诉浏览器可能即将到来的导航。

Safari中的AVIF支持

WebP 和AVIF等现代图像格式可以通过将相同的信息编码在较小的文件中来显著提高网站的速度。

虽然WebP已经被广泛支持了两年多,但AVIF支持直到今年9月iOS 16和macOS Ventura发布时才出现在Safari中。

AVIF在压缩低保真图像时特别出色,这意味着当您想要在网站上显示照片并保存带宽时,它是一个很好的选择。

请注意并非每个Safari用户都已升级,Edge仍然不支持AVIF。

b6379c2189a64ca2075ad5a85245579.png

Safari中的本机图像延迟加载

图像延迟加载确保图像仅在即将进入视口时加载,从而节省带宽并优先处理更重要的页面内容。

自从发布 iOS 15.4这个March Safari现在也支持loading="lazy"属性。现在所有主流浏览器都支持它,并且全局支持 92%的用户.

最后

在过去的一年里,许多新的浏览器功能已经可以用来提高网站的性能。我们也有新的工具来衡量和提高网站的速度,在此也期待2023年Web性能的新的发展。看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~


目录
相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
[译] 用 Web Worker 改善 Vue 组件性能
[译] 用 Web Worker 改善 Vue 组件性能
|
4月前
|
分布式计算 并行计算 安全
在Python Web开发中,Python的全局解释器锁(Global Interpreter Lock,简称GIL)是一个核心概念,它直接影响了Python程序在多线程环境下的执行效率和性能表现
【6月更文挑战第30天】Python的GIL是CPython中的全局锁,限制了多线程并行执行,尤其是在多核CPU上。GIL确保同一时间仅有一个线程执行Python字节码,导致CPU密集型任务时多线程无法充分利用多核,反而可能因上下文切换降低性能。然而,I/O密集型任务仍能受益于线程交替执行。为利用多核,开发者常选择多进程、异步IO或使用不受GIL限制的Python实现。在Web开发中,理解GIL对于优化并发性能至关重要。
56 0
|
18天前
|
缓存 负载均衡 前端开发
优化Web应用性能的十种策略
在当今的数字化时代,Web应用的性能直接影响用户体验和业务成效。本文深入探讨了优化Web应用性能的十种策略,从前端的资源优化到后端的架构改进,涵盖了缓存机制、异步加载、数据库优化等关键技术手段。这些策略不仅能提升响应速度,还能显著减少服务器负担和带宽消耗,为开发者提供了一系列切实可行的解决方案。
|
8天前
|
网络协议 Windows
[收藏]优化基于Win 2000系统的Web服务器性能
[收藏]优化基于Win 2000系统的Web服务器性能
|
2月前
|
缓存 安全 前端开发
【性能大逆袭】Web2py应用如何从龟速变飞快?六大优化秘籍让你的应用焕然一新!
【8月更文挑战第31天】Web2py是一款备受欢迎的全栈Python Web框架,以其内置的数据库抽象层和安全特性著称。然而,随着应用规模的扩大,性能瓶颈逐渐显现。本文通过对比分析,从代码层面(如减少数据库查询、避免全局变量)到部署策略(如静态文件压缩、CDN加速、选择合适数据库、优化查询、异步处理),全面介绍Web2py应用的性能优化方法及其应用场景。通过具体示例,展示了如何创建并优化一个简单的Web2py应用,旨在帮助开发者构建高效稳定的Web应用。
47 2
|
2月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
26 1
|
2月前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
63 1
|
2月前
|
缓存 前端开发 JavaScript
超时空加速秘籍:揭秘JavaScript前端开发中的性能魔法,让您的Web应用瞬间穿越到未来!
【8月更文挑战第27天】本文介绍了一系列实用的JavaScript性能优化方法并提供了示例代码,包括减少DOM操作、使用事件委托、避免阻塞主线程、异步加载资源、利用浏览器缓存、代码分割以及使用Service Worker等技术,帮助开发者有效提升Web应用性能和用户体验。
40 2
|
2月前
|
存储 缓存 监控
Memcached玩转Web性能:一致性哈希、数据持久化,一文全掌握!
【8月更文挑战第24天】Memcached是一款高性能的分布式内存对象缓存系统,它通过在网络中存储数据并使用简单的键值对机制来提高动态Web应用的性能。它可以显著减少数据库查询次数,进而减轻数据库负载并加快响应时间。为了最大化利用Memcached的优势,建议合理配置内存使用、采用一致性哈希策略、实施数据持久化措施,并持续监控系统健康状况。提供的示例代码展示了如何使用Java创建客户端、添加和获取数据。
32 1
|
2月前
|
缓存 编解码 前端开发
优化Web应用性能的前端技巧:从加载时间到用户体验
在现代Web开发中,提升前端性能不仅仅是为了缩短页面加载时间,更是为了提供更流畅的用户体验。本文将探讨几种有效的前端优化技术,包括懒加载、代码拆分、资源压缩以及浏览器缓存策略。通过具体实例和最佳实践,读者将能够掌握如何系统地提高Web应用的响应速度,减少资源消耗,并最终改善用户的整体体验。
下一篇
无影云桌面