关于前端的一些性能优化,你知道多少

codervue codervue     2022-12-26     615

关键词:

一、减少请求资源大小或者次数 

1、尽量和并和压缩css和js文件。(将css文件和并为一个。将js合并为一个)
  原因:主要是为了减少http请求次数以及减少请求资源的大小
  打包工具:
  webpack
  gulp
  grunt
.  ....
2、尽量所使用的字体图标或者SVG图标来代替传统png图
  因为字体图标或者SVG是矢量图,代码编写出来的,方大不会变形,而且渲染速度快

3、采用图片的懒加载(延迟加载)
  目的为了,减少页面第一次加载过程中http的请求次数
  具体步骤:
    1、页面开始加载时不去发送http请求,而是放置一张占位图
    2、当页面加载完时,并且图片在可视区域再去请求加载图片信息

4、能用css做的效果,不要用js做,能用原生js做的,不要轻易去使用第三方插件。
  避免引入第三方大量的库。而自己却只是用里面的一个小功能

5、使用雪碧图或者是说图片精灵
  把所有相对较小的资源图片,绘制在一张大图上,只需要将大图下载下来,然后利用
  图片定位来讲小图展现在页面中(background-position:百分比,数值)

6、减少对cookie的使用(最主要的就是减少本地cookie存储内容的大小),因为客户端操作cookie的时候,这些信息总是在客户端和服务端传递。如果上设置不当,每次发送

一个请求将会携带cookie

7、前端与后端进行数据交互时,对于多项数据尽可能基于json格式来进行传送。相对于使用xml
  来说传输有这个优势
  目的:是数据处理方便,资源偏小

8、前端与后端协商,合理使用keep-alive

9、前端与服务器协商,使用响应资源的压缩

10、避免使用iframe
  不仅不好管控样式,而且相当于在本页面又嵌套其他页面,消耗性能会更大。因为还回去加载这个嵌套页面的资源

11、在基于ajax的get请求进行数据交互的时候,根据需求可以让其产生缓存(注意:这个
缓存不是我们常看到的304状态码,去浏览器本地取数据),这样在下一次从相同地址获取是数据
时,取得就是上一次缓存的数据。(注意:很少使用,一般都会清空。根据需求来做)

二、代码优化相关

1、在js中尽量减少闭包的使用
  原因:使用闭包后,闭包所在的上下文不会被释放

2、减少对DOM操作,主要是减少DOM的重绘与回流(重排)
  关于重排(回流)的分离读写:如果需要设置多个样式,把设置样式全放在一起设置,不要一条一条的设置。使用文档碎片或者字符串拼接做数据绑定(DOM的动态创建)

3、在js中避免嵌套循环和"死循环"(一旦遇到死循环,浏览器就会直接卡掉)

4、把css放在body上,把js放在body下面
  让其先加载css(注意:这里关于优化没有多大关系)

5、减少css表达式的使用

6、css选择器解析规则所示从右往左解析的。减少元素标签作为对后一个选择对象

7、尽量将一个动画元素单独设置为一个图层(避免重绘或者回流的大小)
  注意:图层不要过多设置,否则不但效果没有达到反而更差了

8、在js封装过程中,尽量做到低耦合高内聚。减少页面的冗余代码

9、css中设置定位后,最好使用z-index改变盒子的层级,让盒子不在相同的平面上

10、css导入的时候尽量减少@import导入式,因为@import是同步操作,只有把对应的样式导入后,才会继续向下加兹安,而link是异步的操作

11、使用window.requestAnimationFrame(js的帧动画)代替传统的定时器动画
  如果想使用每隔一段时间执行动画,应该避免使用setInterval,尽量使用setTimeout
  代替setInterval定时器。因为setInterval定时器存在弊端:可能造成两个动画间隔时间
  缩短

12、尽量减少使用递归。避免死递归
  解决:建议使用尾递归

13、基于script标签下载js文件时,可以使用defer或者async来异步加载

14、在事件绑定中,尽可能使用事件委托,减少循环给DOM元素绑定事件处理函数。

15、在js封装过程中,尽量做到低耦合高内聚。减少页面的冗余代码

16、减少Flash的使用

三、存储

1、结合后端,利用浏览器的缓存技术,做一些缓存(让后端返回304,告诉浏览器去本地拉取数据)。(注意:也有弊端)可以让一些不太会改变的静态资源做缓存。比如:一些图片,js,cs

2、利用h5的新特性(localStorage、sessionStorage)做一些简单数据的存储,
  避免向后台请求数据或者说在离线状态下做一些数据展示。

四、其他优化

1、避免使用iframe不仅不好管控样式,而且相当于在本页面又嵌套其他页面,消耗性能会更大。因为还回去加载这个嵌套页面的资源

2、页面中的是数据获取采用异步编程和延迟分批加载,使用异步加载是数据主要是为了避免浏览器失去响应。如果你使用同步,加载数据很大并且很慢
  那么,页面会在一段时间内处于阻塞状态。目的:为了解决请求数据不耽搁渲染,提高页面的
  渲染效率。解决方法:需要动态绑定的是数据区域先隐藏,等数据返回并且绑定后在让其显示
  延迟分批加载类似图片懒加载。减少第一次页面加载时候的http请求次数

3、页面中出现音视频标签,我们不让页面加载的时候去加载这些资源(否则第一次加载会很慢)
  解决方法:只需要将音视频的preload=none即可。
  目的:为了等待页面加载完成时,并且音视频要播放的时候去加兹安音视频资源

4、尽量将一个动画元素单独设置为一个图层(避免重绘或者回流的大小)
  注意:图层不要过多设置,否则不但效果没有达到反而更差了

性能优化

...有影响的内容,同时和以前知道的东西一起做了整理1、关于比较最老生常谈的就是==,equals,一个比较绝对值,一个比较引用地址,一般字符串的比较我们直接用equals但如果我们的数据类型是Integer的时候呢,比较2个Integer是否相... 查看详情

你知道的前端优化手段(代码片段)

...0c;也是每个工程师心中永远在撩拨的刺。总结一下常用的前端性能优化的方法,希望对大家有些帮助~。性能可能带来的影响(贩卖焦虑警告❗️)试想当你做的酷炫特效因为慢了0.1秒就少被一个人看到时的落寞(ㄒoㄒ)& 查看详情

java性能优化的9个工具,你知道几个?

之前我写过一篇关于5个工具帮助写出更好的Java代码的文章。合适的工具可以改进我们的代码,并且提高开发效率。在IDR解决方案中,我们一直在找一些方法来改进我们的代码。但最近,我们在考虑改进PDFHTML5转换器... 查看详情

前端加载技术

参考    前端性能优化之加载技术   关于Preload,你应该知道些什么?  Preload,Prefetch和它们在Chrome之中的优先级对以下文章的补充  简单汇总了一下web的优化方案  关于页面加载图片处理:  预加载... 查看详情

和你关系不好的u3d主程不愿意被你知道的性能优化知识

这周20:00会在CSDN做一个关于Unity3D性能优化的分享。主要介绍一本系统讲解在Unity3D中进行性能优化的书,并且以现实项目为例,讲解如何利用本书进行性能优化。 查看详情

关于react性能优化

这几天陆陆续续看了一些关于React性能优化的博客,大部分提到的都是React15.3新加入的PureComponent,通过使用这个类来减少React的重复渲染,从而提升页面的性能。使用过React的朋友都知道,React组件只有在state和props发生改变时才... 查看详情

写给中高级前端关于性能优化的9大策略和6大指标|网易四年实践(代码片段)

前言笔者近半年一直在参与项目重构,在重构过程中大量应用性能优化和设计模式两方面的知识。性能优化和设计模式两方面的知识不管在工作还是面试时都是高频应用场景,趁着这次参与大规模项目重构的机会,笔者认真梳理... 查看详情

前端性能优化(一)

参考技术A最近跟同事一直忙于关于前端项目的性能分析以及性能优化,前端性能直接影响了用户的体验,针对于前端性能问题,一直是一个大家热议的话题,也并没有一个比较完整通用的解决方案,以下是我个人的一些认识与... 查看详情

[react]你知道的react性能优化有哪些方法?(代码片段)

...坚持一定很酷。欢迎大家一起讨论主目录与歌谣一起通关前端面试题 查看详情

前端性能优化之gzip(代码片段)

背景如果你是个前端开发人员,你肯定知道线上环境要把js,css,图片等压缩,尽量减少文件的大小,提升响应速度,特别是对移动端,这个非常重要。压缩压缩方式前端压缩的方式很多,依赖java的有ant工具,前端自己打包压缩... 查看详情

前端性能优化(css动画篇)

...看我的博客最近拜读了一下html5rocks上几位大神写的一篇关于CSS3动画性能优化的文章,学到了很多,在这里记录一下,其中的知识都是来源于这俩篇文章,我只是截取了其中比较关注的内容出来,原文地址HighPerformanceAnimations及Acc... 查看详情

关于前端的性能优化问题

1.减少http请求数合并文件,通过把所有脚本置于一个脚本文件里或者把所有样式表放于一个样式表文件中,从而减少Http请求的数量。CSSSprites是减少图片请求的首选方案。把所有的背景图片合并到一张图中,使用CSS的background-image... 查看详情

前端性能优化jquery性能优化

一、使用合适的选择器$("#id");1.使用id来定位DOM元素无疑是最佳提高性能的方式,因为jQuery底层将直接调用本地方法document.getElementById();如果这个方式不能直接找到你需要的元素,那么你可以考虑调用find()方法,代码如下:$("#domo"... 查看详情

oraclesql性能优化

...近看到有人私信我问了一些oraclesql的优化问题,分享一篇关于sql优化的文章,后面会多分享一些关于sql优化的文章(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中... 查看详情

移动网站性能优化:网页加载(转)

...,低处理器性能的等,迫使开发者不得不想办法通过优化前端页面的性能来满足用户的性能预期。在强调如何解决移动端性能问题上,这篇文章总结了一些前端优化的案例,并且概括了一些加速页面的方法和策略。·为什么性能... 查看详情

js-关于性能优化的一些学习总结

性能优化的方法有:1、减少HTTP请求:合并CSS/JS,使用CSSsprite等2、压缩CSS/JS/图片3、样式表放头部,JS放body底部:JS放在head中,将会等到js全部下载解析和执行后才会显示页面内容。4、减少DOM操作,DOM操作很消耗性能,另外注意H... 查看详情

网站性能优化你需知道的东西

本文提到的网站性能指网站的响应速度,这也符合绝大部分人对于网站性能的理解:访问快速的网站性能好,反之,访问速度越慢,则网站性能越差。本文总结的优化方法是宏观的工程层面的方法,并不包含微观的语言语法层面... 查看详情

关于android性能监控matrix那些事?你知道那些(中)?(代码片段)

昨天更新了关于Android性能监控Matrix那些事?你知道那些(上)?说的的视频也更新了:微信Matrix卡顿监控实战,函数自动埋点监控方案今天我们接着聊下文:4.Hprof文件分析5.卡顿监控6.卡顿监控源码解析7.插... 查看详情