跟大家聊一聊前端性能优化这个高热点话题

前端性能优化,顾名思义就是对网页的性能进行优化,让用户觉得使用起来更加舒服更加流畅,调用到前端知识呢也就是加快页面的加载速度和页面的运行效率。

具体一点说的话,我们可以从这几个点来探讨一下:

一、web性能

1、减少http请求:1.允许在一个图片上关联多个URL,目标URL取决于用户单击的图片上的位置。     2.精灵(也叫CSS精灵, 是一种CSS图像合成技术,一般用于图标,将多张图片合并到一张图片,配合background-position来使用)     3.合并JS和CSS文件      4.减少http请求头     5.配置多个域名和CDN加速       6.把网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。使用缓存(HTTP缓存、浏览器缓存、应用缓存),恰当的缓存设置可以大大的减少 HTTP请求,例如,很少变化的图片资源可以直接通过 HTTP Header中的Expires设置一个很长的过期头 ;变化不频繁而又可能会变的资源可以使用 Last-Modifed来做请求验证。尽可能的让资源能够在缓存中待得更久。     7.优化cookie

2、避免失败请求:有时候页面中的html或css会向服务器请求一个不存在的资源,比如图片或者html文件,这会造成浏览器与服务器之间过多的往返请求。

3、避免使用document.write:在js中,可以使用document.write,在网页上显示内容或者调用外部资源,而通过此方法,浏览器采取一些多余的步骤(下载资源,读取资源),运行js来了解需要做什么,调用其他资源时,需要重新在执行一次这个过程。由于浏览器之前不知道要显示什么,所以会降低页面加载的速度,而这些资源都是可以用html来调用的。

4、尽量减少重定向:有时候为了特定需求,需要在网页中使用重定向。重定向的意思是,用户的原始请求(如请求A)被重定向到其他的请求(如请求B),但这样会降低浏览器的性能

5、优化样式表和脚步顺序:Style标签和样式表调用代码应该放置在js代码的前面,这样可以使页面的加载速度加快

6、避免js阻塞渲染:浏览器在遇到一个引入外部js文件的<script>标签时,会停下所有工作下载并解析执行它,这会导致页面停止加载

7、多使用压缩。

二、html

1、尽量减少dom元素数量:页面中存在大量DOM元素,会导致js遍历DOM的效率变慢。

2、使用css+div代替table布局,去掉:strong,b,i等格式化控制标签,使用css控制。  因为table比其它html标记占更多的字节。(造成下载时间延迟,占用服务器更多流量资源)    table会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度,让用户等待更久的时间)

3、减少不必要的嵌套,尽量扁平化

三、CSS

1、把关键的代码用内联样式写出来:将CSS直接内联到HTML文档中能使CSS更快速地下载

2、异步加载CSS:使用JavaScript动态创建样式表link元素,并插入到DOM中    

3、可以将文件压缩:能够压缩文件使文件加载更快

4、除去无用的css样式:虽然文件压缩能够降低文件大小。但CSS文件压缩通常只会去除无用的空格。而去除无用CSS会进一步减小CSS文件的大小

5、有选择地使用选择器:因为CSS选择器的匹配是从右向左进行的,所以尽可能的要保持代码的简单并且少使用通配符和属性选择器,以及不要用类选择器和id选择器修饰标签

6、减少哪些使用代价昂贵的属性,像box-shadow、border-radius、filter这些

7、减少重排以及避免不必要的重绘

8、不要使用@import引入CSS

四、JS

1、减少全局变量的查找:因为全局变量在作用域链的最顶端,频繁查找很耗性能。所以在一个函数中尽量将全局对象存储为局部变量来查找,因为访问局部变量的数要更快一些

2、尽量少使用with,因为它会创建自己的作用域

3、定时器:少使用一次性定时器setTimeout,多用周期性setInterval

4、优化循环


5、字符串拼接:连接多个字符的时候用+=,收集字符串的时候可以使用数组收集然后用join来连接

6、少操作dom元素例如增加、修改、删除 DOM或对 DOM集合进行操作。

五、用户体验角度

1、预加载和懒加载两种方法

2、在全选、反全选这些细节方面的加强

3、浏览器缓存以及应用的缓存

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容