本文主要是介绍前端面试-性能优化篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、网络优化
1 使用CDN
2 利用缓存:304缓存(可以举例vue的打包和服务端设置响应头缓存)、serviceworker、sessionstorage、localstorage、indexdb(websql兼容性不好)
3 减少请求和体积(开户gzip、合并请求和文件、压缩代码和图片)
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 渲染量大则分片渲染
例如超长列表只渲染可视区域
这篇关于前端面试-性能优化篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!