每一位前端开发同学在面试的时候,都会有50%的几率会被问:你是如何做前端性能优化的?下面说一说我是怎么回答的?
储备知识下面我会以第一人称的角度,配合文本排版进行回答
面试官:你是如何做性能优化
我:针对前端性能优化,我做过一些总结,一共有三点:
第一次访问时的优化(把第一次的加载速度变快);第n次访问时的优化(把已经访问过的资源缓存);让用户感觉很快,很流畅(通过交互手段优化体验);第一次访问优化的方式有哪些?通过webpack进行资源压缩通过webpack进行资源拆分图片/图标资源的处理服务端渲染
我:第一次访问的时我们优化的主要目的是【加快渲染的速度】、一般我们会使用webpack将资源较大的文件进行压缩或者拆分,压缩一般可以使用uglifyjs去压缩js文件,使文件体积变小;
我:如果此时文件依然很大,我们也可以使用webpack插件来拆分第三方库(不需要记住名字,知道有相关插件即可)
我: 至于图片、图标等资源同样可以在webpack中进行配置,将一定大小的文件转换成base64、或者使用阿里的字体图标库进行图标的渲染
如果想做SEO的优化,也可以采用服务端渲染的方式来加快首屏渲染的速度;
资源的压缩与拆分
1. 使用webpack插件压缩(html、js、css)资源
2. 如何进行资源拆分?
3. 图片/图标资源的处理
4. 服务端渲染
第n次访问优化的方式有哪些?
我:一般情况下,访问过的页面/资源,想要在后面访问时加快访问速度,可以想到的方式是利用缓存或本地存储;
我:前端本身我们可以通过不同的业务逻辑利用localStorage或sessionStorage 就可以了
我:如何涉及到服务端,我们也可以采用http的缓存,一般有两种方式,一个是强缓存、另一个是协商缓存,强缓存的优先级高于协商缓存,我们可以通过相关key去设置缓存时间(那么多属性不一定记得住,但一定要知道有这个东西)