前端性能优化-资源优化

一、资源的压缩与合并

1.为什么要压缩和合并
减少http请求数量
减少请求资源大小

2.HTML压缩
使用在线工具进行压缩
使用html-minifier等npm工具

3.CSS压缩
使用在线工具压缩
使用clean-css等npm工具
webpack配置

4.JS压缩和混淆
使用在线工具压缩
webpack有关配置

5.CSS、JS文件合并
若是若干个小文件,可以考虑合并
无冲突,服务相同的模块,建议合并
有利于首屏呈现的优先加载,其他的延迟加载 不建议合并

二、图片优化

1.图片格式优化
(一)JPEG/JPG
优点:很好的压缩比,画质也可以被很好的保存
使用场景:展示较大的图片并较好的保存画质,比如首页的轮播图
缺点:由于压缩比较高,若是比较追求纹理和边缘那就不太合适,比如说logo就不太会用JPG
压缩工具:github–imagemin

(二)PNG
优点:相对于JPG来说,能更好的处理纹理和边缘
使用场景:logo,图标等小图片
缺点:由于注重纹理等,体积会比较大,色彩与JPG不相上下
压缩工具:imagemin–pngquant

(三)SVG
优点:svg是矢量图形,改变大小不会失真
缺点:兼容性相对较差
使用场景:制作思维脑图等

2.图片加载优化
(一)图片懒加载
原理:一张图片就是一个img标签,浏览器是否发起请求图片是根据img的src属性,所以实现懒加载的关键就是,在图片没有进入可视区域时,先不给img的src赋值,这样浏览器就不会发送请求了,等到图片进入可视区域再给src赋值。

原生的图片懒加载方案
img的一个属性

<img loading = 'lazy' src='' width='' height=''>

第三方插件懒加载方案
比如lazyload

(二)使用渐进式图片(要求美工制作)



上面的是JPG默认的加载方式 从上至下加载
下面的是渐进式的加载方式,从低像素到高像素

渐进式图片的优点
优点:始终让用户看到图片的全貌,可能刚开始不太清晰,慢慢清晰

(三)使用响应式图片
所有屏幕尺寸进行适配
img的srcset属性

<img src="lighthouse-200.jpg" sizes="100vw" srcset="lighthouse-100.jpg 100w, lighthouse-200.jpg 200W, lighthouse-400.jpg 400w, lighthouse-800.jpg 800w lighthouse-1000.jgp 1000w" >

顾名思义是一个src的集合,100w 代表 宽度达到了100w 就使用light100.jpg这个src 以此类推
有一个注意点,刚开始浏览器不会把这些src都下载下来,而是浏览器会根据当前浏览器的宽度下载某个最合适的src资源
mg的sizes属性
100vw 窗口视图的100%
给了sizes值之后,srcset会根据实际的sizes值 选取最合适的src资源

三、字体优化

1.字体出现的两个问题

字体未下载完成时,浏览器隐藏或自动降级,导致字体闪烁
常见的两个问题:
FOIT:flash of invisible text 文字从看不到到看到闪烁的过程
FOUT:flash of unstyled text 文字从没有样式到有样式的闪烁过程

2.使用font-display控制浏览器的行为,属性较新会有兼容问题

五个属性

auto用浏览器自动进行选择,没有太大用处
block(阻塞):3s等待,在前3s不显示,如果3s之后期望字体下载完了,就用下载好的期望字体,要是3s之后期望字体还没有下载完,就用默认字体,什么时候期望字体下载完了,在进行替换
swap(交换):刚开始加载就用默认字体,什么时候期望字体下载完成,在对默认字体进行替换
fallback:其实是对block的一种优化,等待时间变为100ms,等待时间之后若期望字体下载完了,用期望字体,否则用默认字体,什么时候期望字体下载完什么时候进行替换
optional:手机端特别优化的,等待时间100ms,若100ms 期望字体下载完了就一直用期望字体,若没下载完就一直用默认字体,永不替换.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容