当前位置: 首页 > news >正文

面试题-性能优化

前端项目优化:

一般考虑方面: (挑几点记住)

  1. 我们学的: 懒加载: 路由、图片懒加载

    骨架屏的使用

  2. 压缩文件:可以使用压缩工具(如GZIP)对页面文件进行压缩,减小文件大小,提高页面加载速度。

  3. 减少HTTP请求:减少页面元素的请求次数,可以使用雪碧图、字体图标、JS、CSS合并等优化方式,减小文件数量,提高页面加载速度。

  4. 图片优化:尽量避免在页面中使用大量图片,使用图片时建议进行优化(如进行压缩、减小图片大小等),以提高页面加载速度。

  5. JavaScript优化:尽量避免使用全局变量、提取公共方法、减少全局函数调用、异步加载JS文件等,优化JavaScript代码,提高网页响应效率。

  6. CSS优化:避免使用不必要的样式、提取重复样式、减少选择器的数量等操作,优化CSS代码,减小页面加载时间。

  7. 使用CDN:使用CDN可以将静态文件分发到全球多个节点,减少响应时间和资源文件下载时间,加快资源文件传输速度,提高页面性能和用户体验。

减少项目打包体积: (建议记2,3,5)

减小打包后的体积,我们可以采取以下几种方法:

  1. Tree shaking:webpack内置的功能,打包时自动运行。
    • 能剔除掉 JavaScript 中未被使用的代码,当模块 export 的代码没有被其它模块引用时,打包工具会自动将其从依赖树中剔除
    • 是基于ES6模块机制实现的,只能对静态代码进行剔除,对于动态,无法进行优化 (静态就是我们常用的export, import ; 动态就是require的)
  2. 按需引入第三方库:对于一些常用的第三方库,可以只引入自己需要的功能,例如只引入 lodash 中的某个函数。
  3. 图片和字体资源优化:对于图片资源和字体资源,我们可以将其压缩并进行优化处理,以减小打包后的体积。
    对于图片资源,可以采用:
    • 使用在线图片压缩工具:网上有许多在线图片压缩工具,可以直接上传图片进行压缩,例如:TinyPNGCompressjpeg等。
    • 使用图片处理库:比如说,使用JavaScript图片处理库,如:Sharp等。
    • 使用webpack-loader:在webpack中,有一些图片压缩的loader可以用来实现自动压缩图片,如:image-webpack-loader、url-loader、file-loader等。这些loader也可以与其他构建工具一起使用。
    • 使用精灵图技术:可以将多张小图片合并成一张图,通过调整图片的位置来显示不同的小图,从而减少网页的加载次数和带宽消耗。
  4. 减少重复代码:在编写代码时,以通过函数封装、代码抽离等方式减少不必要的重复代码,来减小代码体积。 (尽可能遵循 DRY 原则: Don’t Repeat Yourselt)
  5. 服务器和webpack打包同时配置Gzip:
    • 是一种常见的压缩方式,前端开发中,常常将静态资源(如 CSS、JavaScript 和字体等)进行 Gzip 压缩,从而减小文件大小。
    • 原理是将文件中出现重复的字符串压缩掉,然后将压缩后的结果和原始文件一起传输给浏览器,浏览器接收到数据后再进行解压缩 (HTTP 协议支持 Gzip 压缩)
    • 项目中使用插件可以 vite-plugin-compression
    • 后端需要进行相应配置,开启gzip的使用
http://www.lryc.cn/news/269773.html

相关文章:

  • 自身文档管理规范
  • php学习05-常量
  • MFC:如何将JPEG等图片显示到对话框客户区
  • MIUI解BL锁+刷系统教程
  • 数据结构和算法笔记3:双指针法(快慢指针)
  • 股票价格预测 | Python实现Autoformer, FEDformer和PatchTST等模型用于股价预测
  • Git基础学习_p1
  • 4.Redis事务
  • golang 图片加水印
  • sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set问题解决方案
  • 提升效率:使用注解实现精简而高效的Spring开发
  • 全面好用的setting.xml配置
  • 八股文打卡day14——计算机网络(14)
  • NCNN环境部署及yolov5pt转ncnn模型转换推理
  • selenium模块有哪些用途?
  • 精品Nodejs实现的校园疫情防控管理系统的设计与实现健康打卡
  • 爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapyd+Gerapy 部署爬虫项目>
  • python测试工具: 实现数据源自动核对
  • 要学习openfoam,c++需要掌握到什么程度?
  • web一些实验代码——Servlet请求与响应
  • GPT系列概述
  • 基于遗传算法的集装箱吊装优化,基于遗传算法的集装箱装卸优化
  • postgreSQL单机部署
  • 思维逻辑题3
  • 强大的音乐乐谱控件库
  • 数据库——简单查询复杂查询
  • java虚拟机内存管理
  • Hive实战:词频统计
  • FairyGUI-Cocos Creator官方Demo源码解读
  • LabVIEW利用视觉引导机开发器人精准抓取