面试官:你会怎么做前端web性能优化?我:.%*&.!
CSDN的朋友们好!
今天分享前端优化的常见技术、场景。
整理笔记的时候发现了,应该得是好久之前准备的了。
在这里分享给大家!祝愿大家都收到心仪的offer!
首屏速度、白屏时间
资源加载时间->减少首屏资源体积
收效显著:减少打包体积
- vite打包工具帮助我们压缩代码
- 异步加载非紧急资源
面试话语:例如:页面有一个压缩图片功能,而这个功能的第三方库很大;
这个功能用户不会立即使用、甚至可能不使用。将该功能异步加载
- 更新依赖版本
面试话语: 现在的打包工具有剪枝的功能shaking,也就是按需导入、按需打包。
一些库的老版本不支持按需引入,而新版本库可能支持按需引入。
我一一排查了老项目的依赖项,将它们更新到支持按需导入的新版本,这样子就减少了包的体积,提高首屏速度。
- 能不用第三方库就不用第三方库
例如:比较简单易实现的时间格式化函数,可能你自己写一写代码,不到1kb,但如果你引入第三方库,那么少说10kb。所以综合考虑。
面试话语: 项目中一些用处不大的工具方法,它原本使用第三方库,我就自己写,优化了代码结构,这样子就减少了代码体积
- 避免将大图片等媒体资源转为 base64,防止增大 JS 或 CSS 文件体积。
项目打包工具默认会将图片转为 base64 格式嵌入 JS 或 CSS 文件中,对于小图标这样做影响不大,但大图片转 base64 会使 JS 体积增大。而图片加载不阻碍页面渲染,大图片无需转 base64,检查项目中是否存在大图片转 base64 的情况,避免因此导致的首屏资源体积增大。
收效不大的考虑:
- 页面包含大量DOM分批随滚动渲染
- 实在没有办法的办法,制作骨架屏或 loading 遮罩,减少用户等待焦虑。
面试话语:有的页面实在是因为业务关系,经过优化后资源体积仍然较大,所以我做了骨架屏或 loading 遮罩,减少用户等待焦虑
操作速度、渲染速度
什么情况下会造成操作卡顿和渲染慢
1,一次性操作大量dom
2,进行了复杂度很高的运算(常见于循环)【不常见,通常不需要前端处理运算】
3,vue和react项目中,不必要的渲染太多
1.一次性操作大量DOM:
参考长列表渲染、大数据量渲染方法
3,vue和react项目中,不必要的渲染太多
Vue中有依赖收集,配合上vue3的静态节点标记,已经基本上避免了因为数据改
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。