面试题之项目做过哪些性能优化可以从哪方面说?

这篇具有很好参考价值的文章主要介绍了面试题之项目做过哪些性能优化可以从哪方面说?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见的性能优化措施:

1. 减少 HTTP 请求数:合并和压缩 CSS、JavaScript ⽂件,使⽤雪碧图、字体图标等减少图片请求,减少不必要的资源请求。

2. 减少 DNS 查询:减少使用不同的域名,以减少 DNS 查询次数。

3. 使⽤ CDN:将静态资源部署到 CDN 上,提供更快的访问速度。

 <script src="https://cdn.example.com/script.js"></script>

将静态资源部署到 CDN 上步骤简述: Vue静态资源上CDN方案简述 - 掘金 (juejin.cn)

4. 避免重定向:确保网页没有多余的重定向,减少额外的网络请求。

5. 图⽚懒加载:延迟加载图⽚,只有当图片进⼊可视区域时再进⾏加载。

html
<img src="placeholder.jpg" data-src="image.jpg" class="lazyload">
<script src="lazyload.js"></script>

6. 减少 DOM 元素数量:优化⻚⾯结构,减少 DOM 元素的数量,提升渲染性能。

7. 减少 DOM 操作:避免频繁的 DOM 操作,合并操作或使用 DocumentFragment 进行批量操作。

js
var container = document.getElementById("container");
var fragment = document.createDocumentFragment();
for (var i = 0; i < 1000; i++) {
var div = document.createElement("div");
div.innerText = "Element " + i;
fragment.appendChild(div);
}
container.appendChild(fragment);

8. 使用外部 JavaScript 和 CSS:将 JavaScript 和 CSS 代码外部化,利用浏览器缓存机制提高页面加载速度。  

htm
<link rel="stylesheet" href="styles.css">
<script src="script.js"></script>

9. 压缩文件:压缩 JavaScript、CSS、字体、图片等静态资源⽂件,减小文件大小。

10. 优化 CSS Sprite(精灵图):将多个小图标合并为⼀个大图,并通过 CSS 进行定位,减少图片请求。

通过background-position定位小兔在大图上的位置。

.icon {
background-image: url("sprite.png");
background-position: -10px -20px;
width: 20px;
height: 20px;
}

11 . 使⽤ iconfont:将图标字体作为替代图像,减少图片请求并提⾼渲染性能。

html
<i class="iconfont"></i>

12. 字体裁剪:只加载页面上实际使用的字体字符,减少字体⽂件的大小。需要使用字体⼯具

(如 Fontello IcoMoon 等)进⾏裁剪

13. 多域名分发:将网站的内容划分到不同的域名下,以提高并发请求的能⼒。需要在项⽬中配

置不同的域名或子域名。

14. 减少使⽤ iframe:避免频繁使⽤ iframe,因为它们会增加额外的网络请求和页面加载时间。

15. 避免图⽚ src 为空:确保 img 标签的 src 属性不为空,避免浏览器发送不必要的请求。

16. 把样式表放在 link 中:避免使用内联样式,将样式表放在 link 标签中,使浏览器可以并⾏加

载样式和内容。

17. 把 JavaScript 放在⻚⾯底部:将 JavaScript 脚本放在页面底部,使页面内容可以先加载完毕,提升⽤户体验。


webpack性能优化

1. 使用生产模式(production mode):在Webpack配置中设置 mode production ,这将启⽤许多内置的优化功能,例如代码压缩、作⽤域提升等。

2. 代码分割(Code Splitting):使⽤Webpack的代码分割功能,将代码拆分为多个小块,按需加载,避免打包⼀个巨⼤的⽂件。

3. 懒加载(Lazy Loading):使⽤动态导入(Dynamic Import)或 import() 函数,按需加载模块,在需要时才加载相关代码。

4. Tree Shaking:通过配置Webpack的 optimization 选项,启⽤ sideEffects usedExports ,以消除未使⽤的代码(dead code)。

5. 缓存:使⽤Webpack的 chunkhash contenthash ⽣成⽂件名,实现缓存机制,利⽤浏览器缓存已经加载的⽂件。

6. 并⾏处理(Parallel Processing):使⽤ thread-loader HappyPack 插件,将Webpack的构建过程多线程化,加速构建速度。

7. 使⽤缩⼩作⽤域(Narrowing the Scope):通过配置Webpack的 resolve 选项,缩⼩模块解析的范围,减少不必要的查找。

8. 使⽤外部依赖(External Dependencies):将⼀些稳定的、不经常修改的库或框架通过 externals 配置排除,使⽤CDN引⼊,减少打包体积。

9. 使⽤插件和加载器(Plugins and Loaders):选择⾼效的插件和加载器,合理配置它们的项,以优化构建过程和资源处理。

10. 使⽤Webpack Bundle Analyzer:使⽤Webpack Bundle Analyzer⼯具分析打包后的⽂件,查找体积较⼤、冗余或不必要的模块,进⾏进⼀步优化。


Vue的性能优化策略:

1. 使⽤Vue的生产模式:在构建Vue应⽤时,确保使用⽣产模式,这将禁⽤⼀些开发模式下的警告和调试⼯具,并启用性能优化的功能。

2. 合理使⽤ v-if v-show 指令v-if 指令用于条件渲染,只在条件为真时渲染元素,而v-show 指令仅控制元素的显示和隐藏。根据具体情况选择合适的指令,避免频繁的DOM操作。并且要避免将它们同时⽤在同⼀个元素上,这可能导致不必要的计算和渲染。

3. 列表性能优化:在渲染⼤量列表数据时,使⽤key属性来提高性能。 key 属性可以帮助Vue跟踪每个节点的标识,减少不必要的 DOM 操作。

4. 懒加载路由:对于⼤型单⻚应⽤,可以考虑使⽤路由懒加载技术,按需加载路由组件,减少初始加载时间。

5. 异步组件:将应⽤中的⼀些复杂组件拆分为异步组件,按需加载,提⾼初始渲染性能。

6. 避免不必要的重新渲染:使⽤Vue的计算属性和侦听器来优化视图的更新。确保只有在依赖的数据发⽣变化时才会重新计算和渲染。

8. 使⽤ keep-alive 组件:对于需要缓存的组件,可以使⽤Vue的 keep-alive 组件来缓存组件的状态,避免重复的创建和销毁。

9. 懒加载图片:对于页⾯中的图⽚,可以使⽤懒加载技术,延迟加载图⽚,提⾼页⾯的初始加

载速度。

10. 优化⽹络请求:合理使用Vue的异步组件和懒加载技术,减少页⾯初始加载时的网络请求量。


React的性能优化策略:

1. 使用React.memo() PureComponent :对于函数组件,可以使⽤ React.memo() 函数或继承 PureComponent 类来进⾏浅⽐较,避免不必要的重新渲染

2. 使用 key 属性进⾏列表优化:在渲染列表时,为每个列表项提供唯⼀的 key 属性,以帮助React 更有效地更新和重⽤组件

3. 使用 shouldComponentUpdate React.memo() 进⾏组件渲染控制:在类组件中,可以通过实现 shouldComponentUpdate ⽣命周期方法来控制组件的重新渲染。对于函数组件,可以使用React.memo() 包裹组件并传递⾃定义的比较函数

4. 懒加载组件:对于较⼤的组件或页⾯,可以使⽤ React.lazy() Suspense 组件进行按需加载,减少初始加载时间

5. 使用虚拟化列表:对于⻓列表或⼤型数据集,可以使⽤虚拟化列表库(如 react-virtualized react-window )来仅渲染可见部分,减少DOM操作和内存占⽤

6. 使用 Memoization 进⾏计算的缓存:通过使⽤ Memoization 技术,可以将计算结果缓存起来,避免重复计算,提⾼性能。可以使⽤ Memoization 库(如 reselect )来实现

7. 使用 React Profiler 进⾏性能分析: React Profiler 是React提供的性能分析⼯具,可以帮助定位应⽤中的性能瓶颈,并进行优化

8. 使用 ESLint 和代码分析⼯具:通过使⽤ ESLint 等代码规范⼯具和静态代码分析⼯具,可以发现潜在的性能问题和优化机会,并进行相应的调整文章来源地址https://www.toymoban.com/news/detail-833054.html

到了这里,关于面试题之项目做过哪些性能优化可以从哪方面说?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 你在项目中做过哪些安全防范措施?,解密前端开发常见误区

    XSS 攻击 按照之前说的思路,先讲概念,说用途 什么是XSS攻击 XSS即 Cross Site Scripting (跨站脚本攻击),指的是攻击者想尽一切办法将一些可执行的代码注入到网页中,利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。 为了不和层叠样

    2024年04月10日
    浏览(72)
  • 每日一道面试题之介绍一下常见的异常类有哪些?

    常见的异常类包括: NullPointerException(空指针异常): 例如: SQLException:(数据库相关的异常): 例如: IndexOutOfBoundsException(下标越界异常): 例如: IllegalArgumentException(非法参数异常): 例如: IllegalStateException(非法状态异常): 例如: ClassCastException(类型转换异常

    2024年02月08日
    浏览(36)
  • nodejs项目实战教程01——http服务和URL类,前端开发社招面试解答之性能优化

    需要在终端重新执行一次node app.js浏览器的内容才会刷新 4.如何获取url中的参数 ============================================================================ 4.1 URL类基础 建议大家可以先看看Node.js API文档中的url 网址部分,这里做简要说明。url字符串在nodejs的url模块,有两种解析API,其中旧版的

    2024年04月11日
    浏览(33)
  • Jtti:有哪些方法可以提升Tomcat的性能?

    提升 Tomcat 性能是确保 Web 应用程序快速响应并能够处理高并发请求的关键任务。以下是一些提升 Tomcat 性能的常见方法: 1. 调整JVM参数: a. 内存分配: 增加 JVM 的堆内存(Heap Memory)以提高应用程序的内存容量。使用 -Xmx 和 -Xms 参数设置最大和初始堆大小。 b. 垃圾回收: 选择

    2024年01月22日
    浏览(40)
  • 除了缓存,性能优化还可以这么搞?

    软件设计开发某种意义上是“取”与“舍”的艺术。关于性能方面,就像建筑设计成抗震9度需要额外的成本一样,高性能软件系统也意味着更高的实现成本,有时候与其他质量属性甚至会冲突,比如安全性、可扩展性、可观测性等等。 大部分时候我们需要的是:在业务遇到

    2024年02月03日
    浏览(30)
  • 前端面试:【性能优化】页面加载性能、渲染性能、资源优化

    嗨,亲爱的前端开发者!在今天的Web世界中,用户期望页面加载速度快、交互流畅。因此,前端性能优化成为了至关重要的任务。本文将探讨三个关键方面的性能优化:页面加载性能、渲染性能以及资源优化,以帮助你构建更快速、响应更快的Web应用程序。 1. 页面加载性能:

    2024年02月11日
    浏览(39)
  • mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 读写分离是一种常见的数据库架构方案,旨在分担数据库的读写压力,提高系统的性能和可扩展性。以下是两种常见的读写分离方案: 主从复制方案

    2024年02月07日
    浏览(32)
  • 【面试题】前端面试复习6---性能优化

    前端面试题库 ( 面试必备)              推荐:★★★★★ 地址:前端面试题库 要在 Chrome 中查看 性能指标 ,可以按照以下步骤操作: 打开 Chrome 浏览器,并访问你想要测试的网页。 使用快捷键 F12 或右键点击页面并选择 “检查”,打开开发者工具。 在开发者工具中,

    2024年02月11日
    浏览(33)
  • C++代码性能优化的好处与缺点?有哪些编译器优化选项?

    性能优化是C++编程中的一个重要方面,它可以带来许多好处,但也有一些潜在的缺点。 以下是C++代码性能优化的一些优缺点: 优点: 提高执行速度 : 优化后的代码可以更快地执行,这对于需要处理大量数据或需要快速响应的应用程序尤其重要。 减少资源消耗 : 优化可以减少

    2024年03月27日
    浏览(45)
  • 哪些测试项目可以使用自动化测试?

    通常,软件测试v的测试方式分为人工测试和自动化测试,人工测试是由测试人员编写并执行测试用例,然后观察测试结果与预期结果是否一致的过程;自动化测试是通过测试工具来代替或辅助人工去验证系统功能是否有问题的过程。   采用自动化测试需要满足以下3个条件。

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包