码农的世界互联网科技

web前端必知篇:提高web性能,学会优化!

2018-12-12  本文已影响1人  秋风_bdfd

在这个快节奏的社会中,你的步调稍稍一慢,你就会被社会无情的淘汰。对于一个好的网站来说,良好的性能也是用户来源的一大关键点。毕竟,谁愿意坐在电脑显示屏前面对着一个空白的网页发呆呢?好吧,咱们进入正题,如何提高Web的性能呢?

1 · 减少HTTP的请求次数

a) 合并CSS、JavaScript

b) 合并小图片,使用雪碧图

2 · CSS放在头部,JS放在结尾

3 · 压缩HTML、CSS、JS资源大小

减少资源大小可以加快网页显示速度,所以要对HTML、CSS、JavaScript等进行代码压缩,并在服务器端设置GZip

4 · 压缩图片

图片是最占流量的资源,因此尽量避免使用他,使用时选择最合适的格式(实现需求的前提下,以大小判断),合适的大小,然后压缩,同时在代码中用Srcset来按需显示

a)使用其它方式代替图片(1. 使用CSS3 2. 使用SVG 3. 使用IconFont)

b)选择合适的图片(1. webP优于JPG 2. PNG8优于GIF)

c)使用Srcset

5 · 避免图片和iFrame等的空Src

空Src会重新加载当前页面

6 · 避免重设图片大小

在页面、CSS、JS等中多次重置图片大小,多次重设图片大小会引发图片的多次重绘,影响性能

7 · 利用缓存

使用缓存可以减少向服务器的请求数,节省加载时间,所以所有静态资源都要在服务器端设置缓存,并且尽量使用长Cache(长Cache资源的更新可使用时间戳)

a)缓存一切可缓存的资源

b)使用外联式引用CSS、JS文件

c)使用长Cache

8 · 预加载

大型重资源页面可使用增加Loading的方法,资源加载完成后再显示页面。但Loading时间过长,会造成用户流失

对用户行为分析,可以在当前页加载下一页资源,提升速度

a) 可感知Loading(如进入空间游戏的Loading)

b) 不可感知的Loading(如提前加载下一页)

9 · 按需加载

将不影响当前屏幕资源放在用户需要的时候在加载(PS:按需加载会导致大量重绘,影响渲染性能)

a) LazyLoad

b) 滚屏加载

10 · 第三方资源使用异步加载

第三方资源不可控会影响页面的加载和显示。

这里还是要推荐下小编的web前端学习 裙 : 6879,

58461,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括

小编自己整理的一份最新的web前端资料和0基础入门教程,欢迎初学和

进阶中的小伙伴。在不忙的时间我会给大家解惑。

[CSS优化]

CSS表达式

CSS表达式的执行需跳出CSS树的渲染,尽量避免;

空的CSS规则

空的CSS规则增加了CSS文件的大小,且影响CSS树的执行,将其删除;

能不在标签中写Style属性就不要写

Font-size

过多的Font-size引发CSS树的效率;

为了浏览器的兼容性和性能,值为0时不要带单位;

Web字体

Web字体需要下载,解析,重绘当前页面,尽量减少使用;

标准化各种浏览器前缀

a)无前缀应放在最后;

b)CSS动画只用 (-webkit- 无前缀)两种即可;

[JavaScript优化]

尽量使用ID选择器(ID选择器是最快的);

尽量使用事件代理,避免批量绑定事件;

减少重绘和回流

a)避免不必要的Dom操作;

b)避免使用document.write;

c)尽量改变Class而不是Style,使用classList代替className;

[渲染优化]

Dom节点

Dom节点太多影响页面的渲染,尽量减少使用

动画优化

a) 尽量使用CSS3动画

b) 合理使用requestAnimationFrame动画代替setTimeout

c) 适当使用Canvas动画 5个元素以内使用css动画,5个以上使用Canvas动画

上一篇下一篇

猜你喜欢

热点阅读