前端性能优化清单

本文参考

以下是针对目前公司项目(我参与的项目)的具体情况,整理出来的优化点

一、目前的spa单页面应用的性能瓶颈主要有哪些?

1、首屏渲染慢
...
(欢迎补充)

二、 原因分析

1、 首屏渲染慢, 主要有以下原因

  • 文件过大, 加载、解析占用了过多时间
  • 加载了无用的资源(其他页面的资源)

三、如何优化

1. 启用 Gzip ☆☆☆☆☆

Gzip 压缩通常可以减少 70% 的响应大小,对某些文件更可能高达 90%。主流 Web 服务器都有相应模块,而且绝大多数浏览器支持 gzip 解码。所以,应该对 HTML、CSS、JS、XML、JSON 等文本类型的内容启用压缩。

注意,图片和 PDF 文件不要使用 gzip。它们本身已经压缩过,再使用 gzip 压缩不仅浪费 CPU 资源,而且还可能增加文件体积。

目前我们的服务器都默认开启了gzip。

2. code-splitting 代码分割 ☆☆☆☆☆

作用:避免加载不必要的资源。
使用:

# webpack3 使用import() , webpack2使用require.ensure
const riskManage = ()=> import(/* webpackChunkName: 'hfq-****' */ 'pages/****/index')

效果:

  • 页面加载的资源大小从2.3M减少为1.2M, 减少了50%。
  • 页面加载时间从11.04s缩短为8.37s. 页面加载时间缩短了25%。


    优化前后对比.jpeg

部分项目未做代码切割,如boss系统

3. 利用service workers实现缓存。 ☆☆☆☆

需要在https协议下运行, 可大幅提高用户体验,目前没有项目用到。

4. 图片优化 ☆☆☆

适用于图片比较多的应用。

5. 资源加载优化(提前加载、延迟加载、异步加载) ☆☆☆

  • defer 异步加载脚本,所有元素加载完成之后, DOMContentLoaded事件触发之前执行。

  • async 异步加载脚本,加载完即执行。


    image.png
  • prefecth 加载下一个页面可能用到的资源

  • preload 提前加载当前页面的资源

对于当前页面很有必要的资源使用 preload,对于可能在将来的页面中使用的资源使用 prefetch

  • dns-prefetch DNS预解析

适用于大多数项目

6. 优先加载关键的css ☆☆

  • 优化首屏渲染

7. Intersection Observer 判断元素是否出现在视图中 ☆☆

  • 资源(如图片)懒加载
  • 列表滚动加载

8. 字体优化 ☆☆

9. 合理使用CDN ☆☆☆☆

...
欢迎补充


附上几篇好文:

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

推荐阅读更多精彩内容