9 个前端性能优化的最佳实践

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 现代互联网时代,打开一个Web平台,是留下还是离开,只需要 1 分钟,因此前端的性能优化至关重要。

现代互联网时代,打开一个Web平台,是留下还是离开,只需要 1 分钟,因此前端的性能优化至关重要。

由于前端优化不佳,大多数网站无法提供令人满意的用户体验,最常见的情况是数据加载和图像优化不佳,本文分享几个优化策略。

资源最小化

资源(静态资源)压缩是指从 HTML、CSS 和 JavaScript 中删除不需要加载的不必要的冗余数据的过程。这包括删除代码注释和格式、空白字符、未使用的代码、换行符等。

缩小 HTML、CSS 和 JavaScript 将加快前端加载时间,因为它减少了需要从服务器请求的代码量。

生成 HTML、CSS 和 JavaScript 代码的优化版本可以借助工具,如下:

压缩文件

对于WEB项目,文件越大,加载所需的时间就越长,现代WEB平台通常有大量的 HTML、CSS 和 JavaScript 包。

通过使用合适的方法压缩文件,可以轻松地对前端的加载时间产生重大影响。以下是可以遵循的两个不错的文件压缩选项:

Gzip :最流行的数据压缩和解压缩方法,所有现代浏览器都支持,Gzip 在将站点的 HTML、CSS 和 JavaScript 包发送到浏览器之前先在服务器端对其进行压缩,然后在客户端解压缩文件并传送内容。Brotli :与当前可用的压缩方法相比,它提供了最佳的压缩率,根据 CertSimple 的研究,Brotli 压缩 JavaScript 文件比 Gzip14%,而 HTML 和 CSS 压缩率比 Gzip21%17%

图片优化

说到网站,图像是重要的组成部分,互联网上93.7%的网站至少使用一种图像文件格式,因为它们有助于提高用户参与度,更加吸引用户眼球。

但是,使用图像的负面影响是会对前端加载时间产生不利影响。但是,现在有多种方式可以优化图像:

使用 webp 或 avif

使用 webpavif 等新图像格式比 jpgpng 等旧格式具有更好的性能。

webppng26%,比 jpg25-35%avifjpg50%,比 webp 20%

但是,缺点是浏览器支持还不够普遍。webp  最近获得了浏览器支持的普遍支持,可能存在旧版本不支持它。另一方面,avif 仅在 Chrome 和 Opera 中得到了支持。

提供正确尺寸的图像

减少图像加载时间和提高网站性能的另一种方法是使用响应式图像。超过50%的流量来自智能手机和平板电脑,将图像缩放到主流设备尺寸并使用。

除了选择合适的格式和尺寸外,还有其他几种方法,通过图像优化来减少前端加载时间,以下是可以使用的一些其他方法:

  • 图像压缩
  • 使用渐进式 JPEG
  • 为连接速度较慢的用户提供较小的图像
  • 使用 HTTP/2 、HTTP/3  而不是 HTTP/1.1
  • 使用图像集

减少服务器调用次数

通常,前端向服务器发出的请求越多,加载的时间就越长。因为在呈现页面之前,向服务器发送任何请求都需要完全通信。可以通过多种方式来减少加载页面所需的服务器请求数量。

  • CSS Sprites :这是减少服务器调用次数的最简单方法之一,主要是减少UI相关的图片资源。实现原理不是加载10个独立的图像到网站,而是使用图像集合拼接成一个图像文件,然后通过使用 CSS 中的 background-imagebackground-position 属性来显示所需的图像区域。这样做可以减少了所需的服务器请求数量。
  • 减少第三方插件的大量外部请求。
  • 防止链接到不存在的文件。

此外,还可以查看服务器端渲染以加快应用程序的初始加载速度。

删除不必要的字体

自定义字体已经变得非常流行,因为它有助于为网站添加个性化展示,但这些是以牺牲性能为代价。

自定义字体的大小可能非常大,特别是中文字体,而网络字体(例如 Google 字体)会将 HTTP 请求添加到外部资源,这会影响页面渲染的速度。

以下是在网站中使用字体时可以采取的优化措施:

  • 将字体转换为最有效的格式:加载像 WOFF2 这样的现代格式可以使字体文件大小比其他格式减少约 30%。
  • 子集字体以删除未使用的字符:综合字体文件包含许多可能永远不会使用的语言的字符。通过子集字体,可以从字体中删除不需要的字符,只保留需要在网站上编写内容的内容。
  • 预加载页面明确用到的字体。

延迟加载

延迟加载有助于进一步缩短前端加载时间。使用延迟加载,网页首先只加载需要的内容,并在用户需要时加载剩余的内容。

除了延迟占位符加载之外,还有其他几个选项,例如,原生延迟加载和模糊图像效果。

缓存

如果不加缓存,用户每次访问都需要重新下载所有的资源,避免类似现象的最佳方法是使用缓存技术。如果配置适当,浏览器会将文件存储在其本地缓存中,并避免为来自服务器的后续页面访问加载相同的资源。

  • 缓存服务器:用户请求从缓存服务器集合发送到最近的缓存服务器,即CDN。
  • 内存缓存:通过将数据的某些部分(例如:JavaScript 变量)存储在内存中,无需为路由更改重新加载它们。
  • 磁盘缓存:类似于内存缓存,不同之处在于它使用通常由浏览器处理的传统文件存储。

使用预取

资源预取是另一种可用于优化前端数据加载性能的增强技术。作为开发人员,比浏览器更了解应用程序。因此,预取使用此信息来提示浏览器即将可能需要的资源。

预取加载资源以预期它们需要减少资源的等待时间。主要有三种类型的预取。虽然链接预取是最流行和最广泛使用的方法,但 DNS 预取和预渲染也是有用的选项。

链接预取

链接预取使浏览器能够收集用户可能在最近的将来请求的资源。因此,开发人员可以假设用户可能访问特定网页的位置。

但是,链接预取仅适用于图像和 JavaScript 等可缓存资源。

DNS预取

每当用户请求托管在特定 IP 地址中的资产时,就会执行 DNS 查找以查找 IP 地址所属的域名。

DNS 预取允许浏览器在后台对网页中的链接执行 DNS 查找,同时用户浏览当前页面,以最大限度地减少用户在启用 DNS 预取的情况下单击链接时的延迟。

CDN

前端内容(包括 HTML 页面、样式表、JavaScript 文件和图像)的加载速度可以使用 CDN 进行优化,效果也是最明显的。CDN 是一组分布在多个地理位置的服务器,用于存储内容的缓存版本以快速响应给最终用户。

还有一种特定类型的 CDN,称为图像 CDN,它非常擅长优化图像。有了这些,可以节省40-80%的图像文件大小。鉴于图像通常占据页面重量的一半以上,为图像集成 CDN 可以显着提高加载速度。

总结

性能黄金法则80-90% 的最终用户响应时间用于下载前端组件,例如图像、样式表、脚本等。

因此,优化前端数据加载对于降低跳出率和增加用户在网站上的停留时间至关重要。


相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
7月前
|
编解码 前端开发 JavaScript
Web 前端开发中的最佳实践
本文将介绍 Web 前端开发中的最佳实践,包括代码组织、性能优化、响应式设计和用户体验等方面。通过遵循这些实践,开发人员可以提高开发效率,优化用户体验,并减少潜在的问题和错误。
|
7月前
|
前端开发 JavaScript UED
如何优化前端网页加载速度:最佳实践与技巧
本文探讨了如何通过优化前端网页加载速度来提升用户体验和网站性能。从资源压缩和合并、减少HTTP请求、优化图片、使用CDN加速、采用异步加载和延迟加载等方面介绍了一系列最佳实践和技巧,帮助开发者更好地优化前端性能,提升网页加载速度。
|
24天前
|
存储 前端开发 JavaScript
前端中对象的深度应用与最佳实践
前端对象应用涉及在网页开发中使用JavaScript等技术创建和操作对象,以实现动态交互效果。通过定义属性和方法,对象可以封装数据和功能,提升代码的组织性和复用性,是现代Web开发的核心技术之一。
|
1月前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
57 2
|
1月前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
43 2
|
2月前
|
缓存 前端开发 JavaScript
探索现代前端开发:从框架选择到最佳实践
【10月更文挑战第11天】探索现代前端开发:从框架选择到最佳实践
41 0
|
4月前
|
前端开发 JavaScript 大数据
React与Web Workers:开启前端多线程时代的钥匙——深入探索计算密集型任务的优化策略与最佳实践
【8月更文挑战第31天】随着Web应用复杂性的提升,单线程JavaScript已难以胜任高计算量任务。Web Workers通过多线程编程解决了这一问题,使耗时任务独立运行而不阻塞主线程。结合React的组件化与虚拟DOM优势,可将大数据处理等任务交由Web Workers完成,确保UI流畅。最佳实践包括定义清晰接口、加强错误处理及合理评估任务特性。这一结合不仅提升了用户体验,更为前端开发带来多线程时代的全新可能。
103 1
|
4月前
|
缓存 前端开发 JavaScript
优化前端性能的十大最佳实践
在现代网页开发中,前端性能优化不仅仅是为了提升用户体验,还能显著提高网站的加载速度和响应时间。本文探讨了十大最佳实践,从优化资源加载到减少网络请求,再到提高页面渲染效率,每个实践都旨在解决常见的性能瓶颈。通过实现这些策略,开发者可以显著提升前端性能,提升用户满意度,并确保网站在各种设备上的流畅运行。
|
4月前
|
缓存 前端开发 JavaScript
高效开发现代 Web 应用:从前端到后端的最佳实践
在开发现代 Web 应用时,前端和后端技术的选择对项目的性能、可维护性和用户体验至关重要。本文将探讨如何通过现代工具和框架来优化前端和后端开发流程。我们将分析前端技术(如 React 和 Vue.js)与后端技术(如 Node.js 和 Django)的集成,并提供实际案例来展示如何实现高效开发。无论是对新手还是经验丰富的开发者,本指南都提供了宝贵的洞见和实用的技巧,以帮助提高开发效率并构建出色的 Web 应用。
|
4月前
|
缓存 前端开发 API
优化前端性能的最佳实践
在构建高效的前端应用时,性能优化是不可忽视的关键因素。本文将探讨一些实用的前端性能优化策略,包括资源的懒加载、合理的缓存策略、代码分割以及异步数据加载等方法。通过实施这些最佳实践,可以显著提升应用的响应速度和用户体验。
下一篇
DataWorks