前端经典面试题 | 性能优化之图片优化

简介: 前端经典面试题 | 性能优化之图片优化

一、回答点

base64格式 选择正确图片格式 CDN加载..

二、深入回答

如何对项目中的图片进行优化?

  • 不使用图片,大多数时候我们用到很多修饰类图片,这类图片可以直接使用css代替
  • 在移动端,不需要去加载原图,使用CDN去进行加载,计算出适配屏幕的宽度,请求相应裁剪好的图片
  • 小图使用base64格式
  • 将多个图标文件整合在一张图中
  • 选择出正确的图片格式:
  • 能够显示WebP格式的浏览器尽量使用WebP格式.它具有更好的图像数据压缩算法,能带来更小的图片体积,缺点:兼容不太好

常见的图片格式及场景

  • BMP => 无损 支持索引色同时也支持直接色的点阵图.没有对数据进行压缩,文件体积较大
  • GIF => 无损 采用索引涩的点阵图. LZW压缩算法对其进行编码.文件小,并且支持动画及透明.但是GIF只支持8bit的索引色,它适用于 对色彩要求不高且文件提交小的场景.
  • JPEG => 有损 采用直接色点阵图.优点:采用了直接色,得益于更丰富的色彩,它非常实用来用存储图片,与GIF对比,它不适合用来存储企业的Logo 线框类的图.有损压缩会导致图片模糊,而直接色的选用,会导致图片体积比GIF大
  • PNG-8 => 无损 采用 索引色的点阵图. 它是一种较新的图片格式,PNG8是非常好的GIF格式的替代者,尽可能的去使用PNG8而不是GIF.在相同情况下,PNG8有更小的体积.并且它支持透明度的调节.除非需要动画的支持 否则没理由使用GIF.
  • PNG-24 => 无损 采用直接色的点阵图.优点: 压缩了图片数据,同样效果的图片 PNG24格式的大小比BMP小得多,当然比JPEG GIF PNG8大得多.
  • SVG => 无损矢量图. SVG图片由直线和曲线及绘制它们的方法组成.当放大SVG图片时,看到的还是线和曲线.不会出现像素点.SVG图片放大时 不会失真,非常适合用来制作logo等..
  • WebP => 新图片格式(谷歌开发),WebP同时支持有损和无损压缩,采用 直接色的点阵图.从名字看 由Web而生,相同质量的图片WebP具有更小的体积.如果能降低每一个图片的文件大小,将大大减少浏览器和服务器之间的数据传输量,从而降低访问延迟,提升体验.只有谷歌浏览器和Opera浏览器支持WebP格式.前文说到了,兼容性不太好.
  •   在无损压缩情况下,相同质量的WebP图片,体积要比PNG小25%上下.
  •   在有损压缩的情况下,具有相同精度的WebP图片,体积要比JPEG小30%上下
相关文章
|
3天前
|
缓存 前端开发 JavaScript
前端性能优化都有那些方案 ?
【7月更文挑战第11天】 前端性能优化包括资源合并压缩、懒加载、CDN使用、代码优化、缓存利用和图片优化等策略。例如,减少HTTP请求、压缩CSS/JS、事件委托、利用浏览器及服务器缓存、选择合适图片格式等,旨在提升网页速度和用户体验。服务工作者、异步加载和响应式设计也是关键。持续学习新技术以适应不断变化的优化需求。
10 1
|
3天前
|
缓存 前端开发 JavaScript
高级前端常见的面试题?
【7月更文挑战第11天】 **高级前端面试聚焦候选人的技术深度、项目实战、问题解决及技术趋势洞察。涉及React/Vue生命周期、Redux/Vuex状态管理、Webpack优化、HTTP/HTTPS安全、性能提升策略、PWA、GraphQL、WebAssembly、安全性议题及项目管理。通过回答,展现候选人技术广度与应对复杂场景的能力。**
11 1
|
4天前
|
缓存 Prometheus 监控
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
24 3
|
1天前
|
编解码 缓存 前端开发
现代前端开发中的响应式设计实践与优化
在当今快节奏的互联网环境中,用户对网页的访问设备多样化,响应式设计成为前端开发中不可或缺的一环。本文探讨了响应式设计的重要性以及实现中的最佳实践,涵盖了基本概念、布局策略、以及性能优化的关键技术,为开发人员提供了全面的指导与思路。
|
3天前
|
前端开发 JavaScript
Vue前端渲染blob二进制对象图片的方法
Vue前端渲染blob二进制对象图片的方法
9 0
|
3天前
|
JavaScript 前端开发
【vue】 接口返回的preview是张图片,前端如何渲染
【vue】 接口返回的preview是张图片,前端如何渲染
8 0
|
4天前
|
移动开发 前端开发 JavaScript
前端常见的面试题都有那些?
【7月更文挑战第10天】 前端面试涵盖HTML5新特性、CSS盒模型、JS事件传播、Vue的双向绑定、React生命周期、性能优化策略、浏览器解析流程及安全知识等。例如,HTML5新增video/audio元素、CSS选择器优先级计算、闭包功能、async/await处理异步、Vue通过Object.defineProperty实现数据绑定、React组件生命周期的关键阶段、前端优化如CDN和资源压缩,以及浏览器如何构建渲染树。面试还可能涉及XSS/CSRF防护和框架选择考量。准备面试需全面理解基础概念并结合实践经验。
8 0
|
4天前
|
SQL 监控 Java
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
10 0
|
4天前
|
设计模式 存储 缓存
Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
7 0
|
4天前
|
设计模式 并行计算 安全
Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
10 0