前端面试-性能优化篇
一、网络优化
1 使用CDN
2 利用缓存:304缓存(可以举例vue的打包和服务端设置响应头缓存)、serviceworker、sessionstorage、localstorage、indexdb(websql兼容性不好)
3 减少请求和体积(开户gzip、合并请求和文件、压缩代码和图片)
4 按需加载(图片、模块)
4 按需加载(图片、模块)
一、代码优化
减少代码执行次数(按需执行、防抖节流、提高代码复用率、多使用浏览器内置的api(例如冒泡排序可以用Math.sor和Object.assign))
三、渲染优化
1 减少重排(回流),以下操作会触发重排:
1)节点的变化(添加、删除、位置、尺寸、样式)
2)访问offsetWidth,offsetLeft,scrollTop,scrollHeight(浏览器为了保证获取到正确的值),不一定,面试可以 回答这点
3)浏览器的窗口尺寸变化
优化(主要是减少操作、合并操作、移出文档流操作):
样式拼接好赋值给style.cssText、或者切换类名
先在fragment进行节点操作
将元素移除再操作、设置none、absolute/fixed、innerHtml
2 减少重绘(css改变、visibility、背景色等,一般是颜色等不引起文档结构变化时发生的)
注:重绘不一定导致重排,但重排一定会导致重绘。
3 渲染量大则分片渲染
例如超长列表只渲染可视区域

浙公网安备 33010602011771号