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

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

一、回答点

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 索引
前端性能优化:虚拟滚动技术原理与实战
前端性能优化:虚拟滚动技术原理与实战
497 80
|
3月前
|
缓存 监控 前端开发
前端性能优化:现代框架的关键策略
前端性能优化:现代框架的关键策略
221 74
|
3月前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅的用户体验
前端性能优化:打造流畅的用户体验
|
4月前
|
存储 SQL 关系型数据库
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
|
6月前
|
机器学习/深度学习 人工智能 JSON
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
Resume Matcher 是一款开源AI简历优化工具,通过解析简历和职位描述,提取关键词并计算文本相似性,帮助求职者优化简历内容,提升通过自动化筛选系统(ATS)的概率,增加面试机会。
609 18
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
|
5月前
|
人工智能 算法 数据库
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
|
6月前
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
10月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
10月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!