目录

你是如何做性能优化的?

开放题目,请随便谈谈。

今天的主题其实是「答题思路」,或者说是「解决问题的思路」。

为什么要做性能优化?

有些人看到这个题目,一上来就说「减少请求,添加缓存」之类的。不是说你错了,而是说你回答问题的时候没有思路。

首先你要明白一点:做任何事情都是有「目的」的。

吃饭喝水是为了生存,那么做性能优化的「目的」是什么?

想过这个问题么?如果没想过,今后就要刻意问问自己了。

优化的目的可以是:

1. 增强用户体验。但是这样说很虚,具体来说可以是:

1.1. 加快页面展示速度(慢)

1.2. 加快页面运行速度(卡)

2. 节约服务器带宽流量

3. 减少服务器压力

无论如何,你需要有一个目的。

什么时候做性能优化?

你有目的了,不代表你马上就要去采取行动。

首先,你应该完成了网页的基本功能后再优化。如果你在前期就花时间优化,那么后期有可能没时间做其他功能。

其次,在没有找到性能瓶颈之前,不要优化!

在没有找到性能瓶颈之前,不要优化!

一个网页的性能到底跟哪几方面有关?你优化的地方属于哪一方面?这是需要首先搞清楚的。

一个网页的大概流程包括:

  1. DNS 查询
  2. 发送请求
  3. 等待服务器响应
  4. 下载服务器响应内容
  5. 解析 HTML、CSS、JS 等
  6. 渲染 HTML、CSS、JS 和图片等
  7. 响应用户的点击事件等

如果你的性能瓶颈在「等待服务器响应」这一步,那么你怎么优化 JS、CSS 都没用。

所以再说一遍:在没有找到性能瓶颈之前,不要优化!

怎么优化?

等你找到了瓶颈所在,就可以「对症下药」了。

  1. DNS 查询——减少网页所用的域名个数,可可以减少 DNS 查询的时间
  2. 发送请求——添加缓存、合并文件,都可以减少请求数量
  3. 等待服务器响应——这一步的优化只能是在 MySQL 和后台方面做考虑了
  4. 下载服务器响应内容——添加 Etag、Expires 响应头,得到 304 响应,可以降低下载量
  5. 解析 HTML、CSS、JS 等——去掉无用的 HTML、CSS 和 JS 即可减少解析时间
  6. 渲染 HTML、CSS、JS 和图片等——避免使用低效的 HTML、CSS 和 JS 即可
  7. 响应用户的点击事件等——尽量不在前端做复杂的运算等……

整体思路

看看上面的答题思路:

  1. 为什么要做?
  2. 什么时候做?
  3. 怎么做?

这是一个最基本的答题思路,希望对你有帮助。

饥人谷一直致力于培养有灵魂的编程者,打造专业有爱的国内前端技术圈子。如造梦师一般帮助近千名不甘寂寞的追梦人把编程梦变为现实,他们以饥人谷为起点,足迹遍布包括facebook、阿里巴巴、百度、网易、京东、今日头条、大众美团、饿了么、ofo在内的国内外大小企业。 了解培训课程:加微信 xiedaimala03,官网:https://jirengu.com

本文作者:饥人谷方应杭老师