前端性能优化认知

20 篇文章 5 订阅
订阅专栏

前端性能优化认知

什么是前端性能优化

通常来讲,前端性能优化是指:从用户开始访问网站到整个页面完整地展现出来的过程中,通过各种优化策略和优化方法,让页面加载得更快,让用户的操作相应更及时,给用户更好的使用体验。

优化是在做什么:

如上图所示,优化工作是围绕前端的基本工作原理展开的,包括:客户端和服务器端建立连接、加载资源、解析资源并渲染

上方图片的来源:

  • The Cost Of JavaScript
  • [译]JavaScript 的时间消耗

性能优化的重要性(程序员角度)

当领导问:“为什么网页访问这么慢?”我们不能只是回答“网络不好”这么简单,网络不可能一直都不好。

每个程序员如果想要成长,就不能回避“性能优化”这个话题。很多人写了多年的代码,一直在构建样式、写业务逻辑。但是平凡的程序员之路,何时才是尽头?前端职业发展的瓶颈在哪儿?怎么才能从团队中脱颖而出?如何区分出平凡程序员/大牛程序员/架构师的分水岭?

职场晋升时,我们也要想一想:大部分人都在写业务代码,和别人相比,我的核心竞争力在哪里?除了技术深度、前端工程化、综合素质之外,还有其他的吗?性能优化,绝对是不能忽视的一方面。而且它是贯穿于开发和维护的的全过程。

前端工程化是侧重于提效,具体包括编译打包发布流程、物料中心、组件化等;而前端性能优化是侧重于体验

公司评价一个程序员的价值,不是加班越多越好,也不是代码量越多越好,而是看他是否能解决其他人解决不了的一些技术难题或者瓶颈

大家都知道性能优化很重要,但是落实到具体,怎么去优化?这就需要我们深入去了解前端技术背后的原理,学习一些主流的前端性能优化技术方案,掌握性能优化技术,提升Web性能,才能总结出相应的优化方案,而且需要多年的经验积累;进而到达前端技术圈的上游,提高自己的核心竞争力。

前端性能优化面试

性能优化是前端面试的必考问题,面试者在回答这个问题时,大致情况如下:

  • 70% 的人上来就说减少合并资源、减少请求、数据缓存这些优化手段。

  • 15% 的人会提到需要在 DevTools 下先看看首屏时间,可以先围绕首屏来做优化。

  • 10%的人会提到需要接入一个性能平台来看看现状,诊断一下。

  • 而只有 5% 的人会从前端性能体系来系统考虑性能优化。

面试官期待的是你在什么场景下,遇到了什么性能问题,围绕什么样的性能指标,采取了哪些性能优化手段,最后取得了什么样的结果,而不仅仅是直接说采取了哪些优化手段。

比如说,“为什么首页打开慢?” 面试官期待的是,前端能和后端一样,通过查日志和数据就能定位问题,而不是停留在猜测层面。但在实际当中,能做到这点的前端同学并不多。

那么,前端有没有这样的工具呢?有,那就是性能监控平台。平台上面有各个业务的性能指标及其对应场景下的性能标准,一旦遇到性能问题,就能直接判断当前性能数据有没有问题,然后提示问题是出在前端、后端,还是网络层。

性能优化的意义

1、随着互联网的发展,网页的内容越来越丰富,功能越来越强大,页面也越做越漂亮;带来的问题是,访问速度和体验会收到影响。只有对网站进行持续不断的优化,才能保证网页的访问速度可以跟得上用户体验的需求。

2、高性能可以带来更高的用户参与度用户留存,进而带来更高的转化率SEO排名,更好的用户体验,最终带来更高的业务收益

随着时间的推移,如果一个网站由于各种原因导致心梗越来越差,以至于用户每打开一个页面都要等待很长时间,甚至出现加载失败的情况,那么,不仅新用户不会沉淀下来,老用户也会纷纷离去,最终导致产品的加速衰败。

而且网站的加载快慢,最产品收入有着直接的影响。有数据表明:网页加载时间在5秒内的网站比加载时间为19秒的网站,广告收入会增加近一倍。也就是说,网站或者App的性能直接关系到产品的用户增长和收入增长。

正因为如此,我们才需要通过性能优化的技巧,并结合其他的技术手段来不断提高网站和App的用户体验,从而助力公司的业务增长;同时,我们也可以借此提升自己的技术实力,这对个人的职业成长也会以后很大的帮助。

3、只要产品上线了,随着业务规模量和用户访问量的扩大,性能优化就是不可回避的话题。在遇到性能问题时,有些人的解决办法是:用一些粗糙的手段把问题绕过去,但却给后面的人埋下了坑。这些人常说的依据口头禅是:

相关案例

  • Amazon发现每100ms延迟导致1%的销量损失。

  • 歌地图首页文件从100KB减少到70KB,流量在第一周涨了10%,在接下来的三周涨了25%。

  • 腾讯根据长期数据监控发现,页面一秒钟延迟会造成页面访问量下降9.4%,跳出率增加8.3%,转化率下降3.5%。

补充

有些同学做事有拖延症,经常喜欢刷朋友圈、刷微博、看新闻,导致工作效率很低。为了解决这个问题,其实有个办法就是:把你的浏览器或者指定的软件,添加一个5秒的延迟,这时候,当你访问所有的网站,都会很慢。坚持一个月,你会发现,你再也不想看这些网站了,工作效率明显提升了许多。

这件事情从侧面也反映出:网站的性能如果不够好,对用户来说是一种折磨。时间一长,用户就不想用这个网站了。性能和网站的利益直接相关。涉及到:流量、搜索、转化率、用户体验。

如何学习性能优化

学习难点

我们在网上找到的文章,有很多都只是对CSS、JS技术本身的优化,一旦涉及到App、后端、网络等不是很熟悉的领域,学习起来就比较困难了。结合具体业务开发的应用场景时,却不知从何下手。因此,我们需要要由点及面,学习全链路前端性能优化的知识体系和解决方案

在实际工作当中,前端性能优化往往比较繁杂,学习难点主要体现在以下几个方面:todo

优化标准

我们在做优化时,需要有一个量化标准,比如:

  • loading 要做到什么效果、动画要达到什么效果才是好的?

  • 所有的事件处理,要在什么时间内完成,才能给用户良好的体验?

技术储备前提

  • 掌握前端基础知识。

  • 具备Web开发实战经验。

寻找性能瓶颈

  • 了解性能指标,多快才算快。

  • 利用测量工具和API

  • 优化问题,重新测量。持续迭代。

移动端挑战多

  • 移动端的硬件不如PC端,且网络不稳定。

  • 屏幕尺寸和交互方式都是挑战。

  • 移动端用户更佳缺乏耐心。而且,很多用户是利用碎片化时间访问网页。数据参考: >3秒的加载时间,导致 53%的跳出率(bounce rate)。

  • 持续增长的移动端用户和电商业务。现在很多事情都是在移动端做的。

收获

  • 由浅入深:解读优化技术内幕。

  • 流行+经典:了解技术背后的设计思想。

  • 了解性能优化的关键环节,升级知识储备。

  • 理论+实践:掌握前端业界的流行且成熟的多种性能优化技术,脱颖而出。

  • 了解大厂正在用的生产环境级别的高性能解决方案。

前端性能优化全过程

1、静态资源优化

静态资源优化包括html、css、js、图片等资源的性能优化。包括:

  • 图片的应用场景和使用

  • html、css、js的具体优化策略

  • 资源文件的优化:比如文件压缩合并策略、打包方案、版本号更新方案

  • 前端工程化工具等。

2、页面渲染架构设计及相关的技术方案选型

按照技术方案的分类,包括:

  • 前后端分离技术

  • SPA单页应用

  • BigPipe

  • 同构直出

  • PWA

  • 页面加载策略

  • 接口服务调优、接口缓存策略

  • 大型网站背后的实际性能优化案例

  • 前端组件化、模块化,加速业务开发

3、原生App优化、混合开发优化

  • 浏览器的整体优化方案。比如导航条、登录态、滚动条优化等。

  • 前端缓存策略和优化

  • H5静态资源请求代理的技术原理

  • H5离线技术,达到页面秒开的目标

  • 混合式开发解决方案

  • RN、小程序、flutter等

4、服务端与网络优化

  • CDN 和 DNS 优化

  • 如何减少 http 请求数、减少cookie大小

  • nginx缓存配置和优化

  • 开启和配置 gzip 压缩

  • 如何开启全站 https

  • 升级 Http2.0 的好处和方法

5、研发流程优化

  • 技术调用的方法

  • 前后端接口约定、加快前后端接口联调

  • 前端自动化测试

  • 自动化部署和上线

  • 从研发的整体流程层面梳理出提升研发效率的方式和方法。

6、全链路质量监控体系建设

主要是对性能优化的结果进行衡量、打分、考核:

  • 上线前,页面质量及时检测

  • 上线后,页面性能和错误监控

  • 线上运行时,页面的可用性监控

  • 愿生App的性能和错误监控

前端性能优化包括哪些方面

1、性能优化指标与测量工具

  • 行业标准

  • 优化模型

  • 性能测量工具:了解性能情况,并对比

  • 性能相关APIs

2、渲染优化

  • 现代浏览器的渲染原理

  • 可优化的渲染环节和方法

3、代码优化

  • JS优化:了解JS的开销、解析、优化方案,以及如何配合V8引擎做更有效的优化。

  • html优化

  • css优化

4、资源优化

  • 压缩合并

  • 图片格式

  • 图片加载

  • 字体优化

5、构建优化

  • webpack 优化配置

  • 代码拆分

  • 代码压缩

  • 持久化缓存

  • 监测与分析

  • 按需加载

6、传输和加载优化

  • gZip

  • KeepAlive

  • HTTP缓存

  • Service Worker

  • HTTP/2

  • SSR 服务端渲染

  • Nginx

7、更多主流优化方案

  • SVG 优化图标

  • FlexBox 布局

  • 预加载

  • 预渲染

  • 窗口化提高列表性能

  • 骨架屏

前端性能优化原理与实践
08-20
总的来说,我们将从**网络层面**和**渲染层面**两个大的维度来逐个点亮前端性能优化的技能树。 这两个维度的知识面貌各有千秋:在网络层面,我们需要学习一些必需的理论基础作为前置知识。这部分的学习或许不需要...
性能面试总结?
weixin_47450807的博客
05-03 2819
1、前端性能优化手段 前端性能优化手段从以下几个方面入手:加载优化,执行优化,渲染优化,脚本优化。 1、加载优化:减少HTTP请求、缓存资源、压缩代码、无阻塞、首屏加载、按需加载、预加载、压缩图像、减少Cookie、避免重定向、异步加载第三方资源。 2、执行加载: CSS写在头部,JS写在尾部并异步、避免img、iframe等的src为空、尽量避免重置图像大小、图像尽量避免使用DataURL 3、渲染加载: 设置viewport、减少DOM节点、优化动画、优化高频事件、GPU加速 4、样式优化: 避免
前端性能优化9大策略(面试一网打尽)!
富朝阳的博客
05-18 2万+
在项目开发过程中,任何一个细节都有可能影响网站的访问速度,如果不了解性能优化知识,很多不利网站访问速度的因素会形成累加,从而严重影响网站的性能,导致网站访问速度变慢,用户体验低下,最终导致用户流失。
前端性能优化:构建快速且流畅的Web体验
最新发布
miracle的专栏
08-22 967
前端性能优化是一个涉及多个方面的复杂过程,涵盖图片优化、代码优化、团队协作等多个层面。通过上述技术的应用,我们可以显著提高Web应用的性能,提升用户体验。随着技术的发展,新的优化方法和技术不断出现,开发者需要保持学习的态度,持续探索和实践,以适应不断变化的需求。
前端项目性能优化方案有哪些
热门推荐
m0_51060602的博客
03-07 4万+
前端项目性能优化方案汇总
中高级前端工程师必备的14种性能优化方案
weixin_57031986的博客
02-27 3114
中高级前端工程师必备的14种性能优化方案
前端性能优化,我们可以做哪些?
mapbar_front的博客
04-06 1万+
1、雪碧图技术 这个很简单,把每个小图标都整合到一张大图上面,极大的减轻http请求数,同时能够让图片快速加载进来。 考虑到当前的5g的发展前景,以后图片不会造成加载延迟的现象。 2、浏览器渲染机制 输入一个网址:我们得到服务端html文件。 根据html文件,从头到尾的一个个的依次渲染页面渲染页面。 但是遇到图片——不会等待图片的加载完毕,会直接渲染下面的标签。 如果图片加载出...
前端实现下拉框.zip
06-23
3. **性能优化**:避免一次性加载大量选项,可以采用懒加载策略,只在需要时加载部分数据。 4. **用户体验**:提供搜索功能,方便用户快速找到目标选项;考虑默认选中项和提示信息,减少用户认知负担。 5. **交互...
创意前端简历网站模板
04-02
为了让潜在雇主更容易发现,创意前端简历网站应具备良好的搜索引擎优化(SEO)。这包括设置合适的元标签、使用关键词、优化URL结构以及提供XML站点地图等,以提高在搜索引擎结果中的排名。 综上所述,"创意前端简历...
医院大屏展示系统 前端静态模板
06-08
7. **性能优化**:对于大屏展示系统,加载速度和响应时间至关重要。前端模板需要优化图片大小、压缩CSS和JS文件,以及利用缓存策略提高加载效率。 8. **可扩展性和维护性**:好的前端模板应具有良好的模块化和可...
2022前端面试题集锦1
07-18
7. **Web Accessibility(无障碍)**:确保网页内容对所有用户,包括有视觉、听觉、运动或认知障碍的人,都能访问和理解。 8. **BOM(Browser Object Model)属性对象方法**:如`window.location`、`window.history...
前端性能优化
weixin_57031986的博客
02-28 1934
前端性能优化
常见前端性能优化的35种方法总结
Baron的技术blog
06-06 6636
常见前端网页性能优化方法总结汇总
浅谈前端性能优化
weixin_44063225的博客
03-10 513
什么是前端性能 它是一个跨功能需求,优化的方式有很多种,可以将其总结分为俩大类,第一类是运行环境的优化,如【网络、服务器资源】等,第二类为代码级别的优化,例如js中DOM操作优化,css选择器优化,图片优化以及HTML结构优化等等。 理解影响性能的关键因素 延迟 带宽(流量、流量控制) DNS解析 TCP/TLS(安全传输层协议) 静态资源 ...
史上最详细的前端性能优化攻略
浮游的博客
08-19 1193
一、减少请求数量 【合并】   如果不进行文件合并,有如下3个隐患   1、文件与文件之间有插入的上行请求,增加了N-1个网络延迟   2、受丢包问题影响更严重   3、经过代理服务器时可能会被断开   但是,文件合并本身也有自己的问题   1、首屏渲染问题   2、缓存失效问题   所以,对于文件合并,有如下改进建议   1、公共库合并   2、不同页面单独合并 【图片处理】   1、雪碧图   CSS雪碧图是以前非常流行的技术,把网站上的一些图片整合到一张单独的图片中,可以减少网站的HTTP请求数量,但
前端性能优化【详解】(含前端性能指标、前端性能监测和问题排查、优化加载、优化渲染、懒加载,手写防抖、节流等)
朝阳39的博客
03-06 2216
都可以考虑用空间换时间。
前端常用的性能优化方案
haixtx的博客
08-05 1290
文章主要介绍了前端对项目进行性能优化的一些常用方案,从开发阶段、打包阶段以及部署阶段上方面入手,介绍了多种性能优化的手段来达到让页面加载更快,也就是让代码打包后的体积尽可能的小以及让资源请求更快的目的
前端性能优化的七种方法
马小兜要努力呀
08-06 2万+
前端性能优化主要有七种方法,包括减少请求数量、减少资源大小、优化网络连接、优化资源加载、减少重绘回流、使用性能更好的API和构建优化 1、减少请求数量 1.1 图片处理 1.1.1 雪碧图 雪碧图是根据css sprite音译过来的,就是将很多小图标放在一张图片上就称之为雪碧图,可以减少网站http请求数量,但是当整合图片比较大的时候,一次加载比较慢,随着字体图片、svg图片的流行该技术慢慢退出了舞台 1.1.2 Base64 将图片的内容以Base64格式内嵌到HTML中,可以减少http请求数量,但是
前端面试题】:性能优化
Anislandwhale的博客
03-18 1926
允许用户根据自己的需求自定义工具的设置和功能。这可以提高用户的满意度和工具的实用性。
2022前端面试深度解析:技术栈、难点与优化策略
11. 网站性能优化:包括减少HTTP请求、压缩资源、合理使用CDN、避免不必要的DOM操作和优化JavaScript代码等。 12. JS自定义事件实现:了解原生的createEvent、initEvent、dispatchEvent方法,以及如何使用它们创建...
写文章

热门文章

  • [Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function" 107155
  • 使用vue-quill-editor实现富文本编辑器 96760
  • 关于Invalid prop: type check failed for prop "index". Expected String with value "5"问题排查 60970
  • Object.keys()的详解和用法 57128
  • [Vue warn]: Duplicate keys detected: ''. This may cause an update error. 30410

分类专栏

  • 前端面试 7篇
  • 前端工具 3篇
  • 性能与优化 20篇
  • vue日常存档 47篇
  • 随笔 7篇
  • 算法 6篇
  • Docker 3篇
  • canvas 4篇
  • HTML5新增功能 1篇
  • Node.js 5篇
  • 路由 2篇
  • Echarts 6篇
  • EasyUI 4篇
  • Axios 3篇
  • Git 5篇
  • JavaScript 31篇
  • JQuery 1篇
  • 面试题 16篇
  • CSS 16篇
  • 移动端 2篇
  • 感悟 1篇
  • React 8篇
  • Webpack 2篇
  • 安全与登录 1篇
  • 浏览器 3篇
  • ElemenyUI 2篇
  • ES6 4篇
  • 项目管理 1篇
  • API 1篇

最新评论

  • 使用vue-quill-editor实现富文本编辑器

    如此!这般?: 请问大佬,使用微软输入法打“天”这个字会失败,有遇到这个问题吗?

  • Duplicated key ‘isFetch‘ vue/no-dupe-keys

    来二斤胡萝卜_: 狠狠点了

  • [Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function"

    阿鄢鄢: 可能你的函数里面写错了,我的就是函数this指向的时候,本来指向data中的属性,结果写成了this.函数名

  • [Vue warn]: Duplicate keys detected: ''. This may cause an update error.

    qq_42952500: 多谢提醒。

  • reduce()方法详解

    qxx213dff: 非常好的javascript文章,先做个标记

最新文章

  • 前端常用的时间格式处理
  • 项目中常用的utils
  • 常用业务JS函数方法
2024年2篇
2023年2篇
2022年24篇
2021年44篇
2020年44篇
2019年57篇
2018年39篇
2016年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司淡水优化网站费用美咖企业如何优化网站罗湖儿童网站优化经验优化公司网站优选火3星顶尖优化网站的经历成都个人网站优化西安免费网站优化多少钱唐山优质网站优化代理的价格通州网络推广网站优化山东建设网站与优化网站优化编辑兼职招聘网站优化的主要内容包括靖安县网站seo优化排名网站排名优化请咨询兴田德润河北卫浴行业网站优化推广怎么样常平镇五金网站优化哪里好铜陵吉安营销型网站优化营销怎样才能优化好一个网站网站注册优化网站的关键词优化机会易速达怎么做网站优化价格三水百度网站优化济宁集团网站优化门头沟网站优化和推广个人优化网站技巧网站推广优化钢然氵云速捷桃城区网站seo优化排名松岗搜索引擎网站优化网站栏目的优化临沂网站排名优化企业服务香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化