• 0
  • 0
分享
  • 性能测试必看 | 8个方法让图片加载更快一点——软件测试圈
  • 小丸子🍡 2024-10-09 14:59:11 字数 2969 阅读 332 收藏 0

  有一次,我在做一个web网站的压测时,总感觉并发上不去,后台,中间件包括网络等所有性能都是OK的,后来在排查前端时才发现,原来是图片加载速度过慢造成的瓶颈,如果我当初能对前端图片的性能优化多一些认知,那么可能排查起来就更加的丝滑了,所以作为测试人员,是很有必要了解前端图片的优化方法的,这也能提升你在开发心中地位。在当今数字化的世界中,无论是网页设计、移动应用开发,还是各种多媒体软件,图片都是不可或缺的元素。然而,图片的加载速度却常常成为影响用户体验的关键因素。

1-1.png

1-2.png

1-3.png

  一、图片压缩 

  图片压缩是提升加载速度的首要手段。通过减少图片文件的大小,可以显著缩短加载时间,同时又能最大程度地保留图片的视觉质量。     

  有损压缩 

  有损压缩通过舍弃一些不太重要的图像细节来减小文件大小。JPEG 格式是有损压缩的常见代表。例如,对于一张高清风景照片,我们可以使用图像编辑软件(如 Adobe Photoshop 或 GIMP)进行有损压缩。在保存为 JPEG 格式时,调整压缩质量参数,通常在 60% - 80% 之间可以在保持较好视觉效果的同时大幅减小文件大小。 

  无损压缩 

  无损压缩则在不损失图像质量的前提下减少文件大小。PNG 格式常用于需要保留透明度或高质量细节的图片。工具如 TinyPNG 可以对 PNG 图片进行高效的无损压缩。假设我们有一个设计精美的图标,使用 TinyPNG 压缩后,文件大小可能减少 30% - 50%,而图标在视觉上毫无变化。 

  二、选择合适的图片格式 

  不同的图片格式具有不同的特点和适用场景,根据具体需求选择恰当的格式能有效提高加载性能。 

  JPEG 格式 适用于色彩丰富、细节丰富的照片和复杂图像。例如,在一个旅游网站上展示的风景照片,JPEG 格式能够在保证较高画质的同时,提供相对较小的文件大小。 

  PNG 格式 对于需要透明度支持的图片,如带有透明背景的图标、按钮等,PNG 格式是首选。以一个电商网站的商品图标为例,PNG 格式可以确保在不同背景下都能完美展示,而不会出现锯齿或边缘失真。 

  WebP 格式 

  WebP 格式是一种新兴的高效图片格式,在相同质量下通常比 JPEG 和 PNG 更小。但需要注意的是,并非所有浏览器都完全支持 WebP 格式。一些前沿的科技公司网站,在支持 WebP 格式的浏览器中使用它来加载图片,从而显著提高了加载速度。

  三、图片尺寸优化 

  确保图片的尺寸与实际显示需求精确匹配,避免加载过大的图片,这能极大地提升加载效率。

  响应式设计 

  在响应式网页设计中,根据不同的设备屏幕尺寸和分辨率,提供相应尺寸的图片。例如,对于一个手机端的网页,当用户在小屏幕设备上访问时,加载的图片尺寸应该适合小屏幕显示,而不是加载为大屏幕设计的高分辨率大尺寸图片。 

  图片裁剪和缩放 在服务器端或前端对图片进行裁剪和缩放,使其刚好满足显示区域的大小。比如,在一个图片分享应用中,用户上传的原图可能尺寸过大,在展示时,根据页面布局和显示要求,对图片进行裁剪和缩放处理,减少不必要的数据传输。 

  四、使用内容分发网络(CDN) 

  CDN 可以将图片缓存到离用户更近的服务器节点上,减少数据传输的距离和时间,从而加快加载速度。 

  大型电商平台的应用 

  像亚马逊、淘宝这样的大型电商平台,其商品图片数量庞大。通过使用 CDN,当用户访问商品页面时,图片能够从离用户最近的 CDN 节点快速加载,无论用户身处何地,都能获得流畅的购物体验。 

  新闻资讯网站的实践 新闻资讯网站通常有大量的图片内容,如图片新闻、广告图片等。利用 CDN 服务,将热门新闻的图片缓存到全球各地的节点,确保用户能够快速获取最新的资讯图片,减少等待时间。 

  五、图片懒加载 

  懒加载技术只在图片即将进入用户视口时才进行加载,有效减少了初始页面加载时的负担。 

  长页面应用 

  在一个内容丰富的长页面,如博客文章列表或图库页面,只有当用户滚动到图片所在位置时,图片才开始加载。以一个图片博客网站为例,初始加载时只加载页面顶部的几张图片,随着用户向下滚动,后续的图片逐渐加载,避免了一次性加载大量图片导致的卡顿。 

  移动端应用 

  在移动应用中,特别是在网络环境不稳定的情况下,懒加载尤为重要。例如,一个移动社交应用的图片墙,只有当用户滑动到特定区域时,对应的图片才开始加载,节省了用户的流量并提高了应用的响应速度。 

  六、优化图片的 HTTP 请求 

  减少图片的 HTTP 请求数量可以加快页面的加载速度。 

  CSS Sprites 技术 

  将多个小图标合并成一个大的图片文件,通过 CSS 来控制显示的部分,从而减少 HTTP 请求。例如,一个网页的导航栏中有多个小图标,将这些图标整合到一个 CSS Sprite 图片中,只需一次请求即可加载所有图标。 

  雪碧图的实际应用 

  在一个电商网站的购物车页面,将购物车的各种操作图标(如添加、删除、修改数量等)整合为一个雪碧图,减少了多个单独图标请求带来的性能开销。 

  图片的内联 

  对于一些小的、频繁使用的图片,可以将其以 base64 编码的形式内联在 CSS 或 HTML 中,避免额外的 HTTP 请求。但需要注意,对于较大的图片,这种方式可能会增加文件大小,反而影响性能。 

  七、服务器端优化 

  在服务器端进行适当的配置和优化,也能对图片加载速度产生积极影响。 

  启用 HTTP 缓存 

  通过设置合适的 HTTP 头信息,让浏览器缓存图片,避免重复请求。例如,设置 `Cache-Control` 和 `Expires` 头,指定图片的缓存有效期。 

  服务器压缩 

  服务器可以对图片进行 Gzip 或 Brotli 压缩,减少传输的数据量。这在网络带宽有限的情况下效果尤为明显。 

  八、前端性能优化技巧 

  在前端开发中,还有一些技巧可以提升图片加载的性能。 

  预加载关键图片 

  对于一些关键的、用户首先会看到的图片,可以使用 HTML 的 `<link rel="preload">` 标签进行预加载,确保在页面加载时这些图片能够快速显示。 

  利用浏览器的缓存策略 

  合理设置图片的缓存策略,让浏览器在后续访问时能够直接从缓存中读取图片,而无需重新下载。 通过综合运用上述的性能优化方法,并根据具体的软件项目和用户需求进行针对性的调整和测试,我们能够显著提高图片的加载速度,为用户带来更流畅、更满意的体验。作为软件测试人员,我们要密切关注这些优化措施的效果,通过性能测试工具和实际用户反馈,不断改进和完善图片加载的性能,为打造高质量的软件产品贡献力量。

  总结

  写了这么多,可能还有同学会问,有什么前端性能测试工具推荐吗,这个太多了,网上一搜一大堆,还是大家多去尝试几款,然后选择适合自己的就好,另外我想说的一点是,工具是小事,主要还在于你对前端性能的概念要清晰,多去看看前端35条军训之类的文章,对你日后从事性能测试是大有裨益的!


作者:有房车的直男    

来源:http://www.51testing.com/html/81/n-7802781.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   阿里云宣布,将在全球五个国家投资新建数据中心,分别位于韩国、马来西亚、菲律宾、泰国和墨西哥。值得一提的是,这也是阿里云首次进入墨西哥市场。  截至目前,阿里云在全球 30 个地域运营 89 个可用区。新一轮投入之后,阿里云的全球布局将增加至全球 31 个地域和 95 个可用区。  阿里云智能国际事业部总裁袁千表示,阿里云将加码投资全球能力建设,这意味着全球范围内更多的数据中心、更强的服务能力、更紧密的合作伙伴关系。目前,阿里云已经覆盖东南亚、日本、美国、英国、欧洲、中东等主要海外市场。  另据IT之家此前报道,LV 高奢品牌母公司酩悦?轩尼诗-路易?威登集团(LVMH)近期宣布将和阿里巴巴...
            0 0 708
            分享
          • Apifox 新版本上线啦!欢迎升级使用:界面右上角【设置】-> 【关于 Apifox】->【检查更新】看看本次版本更新主要涵盖的重点内容,有没有你所关注的功能特性:支持 WebSocket API;自动化测试功能升级;Web 端新增部分功能快捷键;支持自定义设置版本更新及安装提醒。01 支持 WebSocket API最新版本的 Apifox 支持对 WebSocket 接口进行调试,目前正处在 Beta 公开测试阶段。点击左侧的「+」按钮,选择「新建 WebSocket 接口(Beta)」,输入 WebSocket 接口的 URL 即可完成握手并建...
            0 0 1884
            分享
          • 我选择的想要做研究的网站是:宜家(https://www.ikea.cn/)宜家家居背景:宜家家居于1943年创建于瑞典,“为大多数人创造更加美好的日常生活”是宜家公司自创立以来一直努力的方向。宜家将主要消费群体瞄准为25-35岁的“新中产阶层”,因为年轻化和时尚化,决定了他们对家具和家居产品的要求是强调设计以及能够体现流行的不同搭配。这种定位是十分巧妙准确的,IKEA抓住了这个新生消费层,向他们提供设计精良、功能完善、价格相对低廉的家居产品,来迎合他们注重品质和品位、并兼顾价格的消费习惯,网站的整体风格和设计也都明显偏向于白领阶层的喜好。随着互联网的无孔不入,越来越多的人开始使用互联网作为信...
            0 0 2829
            分享
          • 用工具代替/辅助人工完成软件测试活动的过程,不能为了自动化而自动化自动化测试特点可以对程序的新版本自动执行回归测试可以执行一些手工测试困难或不可能进行的测试可以更好地利用资源测试具有一致性和可重复性自动化一定要有框架自动化测试优势节省时间,提高测试覆盖率和测试精度减少手工测试人为产生的错误提供规范化的过程和一致性自动化测试局限性手工测试比自动测试发现的故障要多,自动化只能发现约15%的bug自动化测试不能提高测试的有效性,只能用于提高测试的效率自动化测试不具有想象力,没人聪明自动化测试不能取代手工测试误区:期望自动化测试发现大量新故障安全性错觉自动化测试的维护开销不适合于自动化测试情景测试频度...
            0 0 1188
            分享
          •   据报道,近日,早已经退出日常管理的谷歌(94.86, -0.60, -0.63%)联合创始人谢尔盖·布林几年来第一次要求访问谷歌内部的软件代码。人工智能领域的白热化竞争已经惊动了这位联合创始人。  2019年,布林完全辞去了谷歌母公司Alphabet的管理职务,让桑达尔·皮查伊执掌大权。今年1月14日,布林向谷歌内部提出了申请,希望查看相关代码和数据,即名为“LaMDA”的用来训练谷歌自然语言聊天机器人的数据。  “LaMDA”是“对话应用软件的语言模型”英语的首字母简写,这种模型能够分析人类的语言,识别出其中包含的指令信息。2021年,谷歌首次披露内部存在这样一个人工智能产品,并且在去年...
            0 0 1141
            分享
      • 51testing软件测试圈微信