web前端性能优化指南

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

摘要:一般来说页面访问的时间有一条著名的“2-5-8原则”。当用户访问一个页面: 1、在2秒内得到响应时,会感觉系统响应很快; 2、在2-5秒之间得到响应时,会感觉系统的响应速度还可以; 3、在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但可以接受; 而超过8秒后仍然无法得到响应时,用户会感觉系统糟透了,进而选择离开这个站点,或者发起第二次请求。对于一个网站如果希望抓住用户,网站的速度以及稳定性是非常重要的。

一、为什么要做性能优化?

从上面可以看出,网站前端的用户体验决定了用户是否想要去使用网站的功能,而网站的功能决定了用户是否会一票否决前端体验。 不仅仅如此,如果前端优化得好,他不仅可以为企业节约成本,他还能给用户带来更多的用户,因为增强的用户体验。总结成三点就是: 1、加快页面展示和运行速度 2、节约服务器带宽流量 3、减少服务器压力

二、什么时候做性能优化最合适?

一般来说,遵循避免过早优化的原则,因为网站再发过程中的成本相对来说还是比较高的,web开发工程师、ui、产品、运维、后台服务等等,所以第一我们要保证基本功能完成,再考虑优化。第二在没有找到性能瓶颈之前,不要优化

三、哪方面需要做性能优化?

在这之前,我们先分析一个页面从发起请求到展示到用户大概流程 1、DNS 查询 2、发送 HTTP 请求 3、等待服务器响应 4、下载服务器响应内容 5、解析 HTML、CSS、JS 6、渲染 HTML、CSS、JS 和图片 7、响应用户事件 了解了这几个过程,大家应该知道如何优化了吧,对,就是对症下药: 1、针对 DNS 查询优化

减少网站所用的域名个数(现代浏览器基本都具备并行下载能),减少 DNS 查询时间建议一个网站使用至少 2 个域,但不多于 4 个域来提供资源

2、针对发送方面的请求优化

localStorage(本地存储) 静态资源打包,开启 Gzip 压缩(节省响应流量) Cookie 隔离(节省请求流量) 使用 CDN 加速(访问最近服务器)

3、针对等待服务器响应方面的优化

合理设置 HTTP 缓存:Etag 与 Cache-control 启用 HTTP/2(多路复用,并行加载) 优化数据库查询 部署负载均衡

4、针对下载服务器响应内容优化

用 CSS3 实现图片,对小图标进行 base64(降低请求数) 延迟(defer)加载/异步(async)加载依赖 针对解析 HTML、CSS、JS优化 去掉无用的 HTML、CSS 和 JS 优化首屏时间:脚本后位置、图片压缩、懒加载

5、针对渲染 HTML、CSS、JS 和图片优化

最小化重绘(repaint)和回流(reflow):批量修改元素样式、避免 table 布局等 针对响应用户事件优化 尽量不在前端做复杂的运算


原文发布时间:2018年01月13日

作者:技术金三胖

本文来源:开源中国  如需转载请联系原作者

目录
相关文章
|
8天前
|
前端开发 JavaScript UED
深入了解前端性能优化:提高用户体验的关键
【10月更文挑战第9天】深入了解前端性能优化:提高用户体验的关键
27 5
|
11天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
42 5
|
12天前
|
前端开发 JavaScript 测试技术
前端工程化:构建高效、可维护的现代Web应用
【10月更文挑战第5天】前端工程化:构建高效、可维护的现代Web应用
|
12天前
|
前端开发 测试技术 持续交付
前端工程化:构建高效、可维护的现代Web应用
【10月更文挑战第5天】前端工程化:构建高效、可维护的现代Web应用
|
2天前
|
人工智能 前端开发
2024 川渝 Web 前端开发技术交流会「互联」:等你来报名!
2024 川渝 Web 前端开发技术交流会「互联」:等你来报名!
2024 川渝 Web 前端开发技术交流会「互联」:等你来报名!
|
8天前
|
缓存 前端开发 JavaScript
前端性能优化策略
【10月更文挑战第9天】前端性能优化策略
17 6
|
5天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
4天前
|
存储 前端开发 JavaScript
从 Web 2.0 到 Web 3.0:前端开发的历史与未来
【10月更文挑战第4天】本文探讨了从 Web 2.0 到 Web 3.0 的前端开发演变过程。Web 2.0 时代,前端开发者从静态网页设计走向复杂交互,技术框架如 jQuery、React 和 Vue 带来了巨大的变革。而 Web 3.0 以区块链技术为核心,带来了去中心化的互联网体验,前端开发者面临与区块链交互、去中心化身份验证、分布式存储等新挑战。文章总结了 Web 2.0 和 Web 3.0 的核心区别,并为开发者提供了如何应对新技术的建议,帮助他们在新时代中掌握技能、设计更安全的用户体验。
21 0
从 Web 2.0 到 Web 3.0:前端开发的历史与未来
|
5天前
|
前端开发 JavaScript 开发者
web前端需要学什么
web前端需要学什么
|
8天前
|
前端开发 JavaScript 开发者
Web组件:一种新的前端开发范式
【10月更文挑战第9天】Web组件:一种新的前端开发范式
11 2