提升网站用户体验—WebP 图片的高效使用

news/2024/5/9 20:26:50/文章来源:https://blog.csdn.net/wangpeng198688/article/details/50496233

提升网站用户体验—WebP 图片的高效使用

一.WebP 的由来

现代图像压缩技术对我们的生活方式影响很大。数码相机能将上千张高质量图片存储到一张内存卡里、智能手机可以与邻近设备快速分享高分辨率的图片、网站与手机等移动设备能快速展示各种富媒体。

然而,如果图片只能以最原始的格式进行存储的话,以上所有都只是纸上空谈。

在 APP、浏览器或 PC 端、还是移动端等各种设备里,通常使用 JPEG 这种损耗较大的格式对图片进行高效率的管理,而使用 PNG 这种失真较小的格式传送图表、图标以及图画等。

然而,在过去几年间,尽管视频的格式发展迅速,图像格式却有些不尽人意。

直到 2010 年,谷歌推出了全新的 WebP(发音为 「Weppy」)格式,一种开源且同时支持有损与无损压缩的图片格式,才改善了这一现状。

WebP 格式文件要比常用的 JEPG 与 PNG 格式小得多,而且还支持许多高级特性,比如有损模式下的透明性,在低质、高压缩设置下更为养眼的图片质量等。

二.WebP 的意义

前两年 Google 进行了一个统计调查:如果亚马逊页面加载每慢 100ms,将影响他们 1% 的收入;如果谷歌页面加载慢 500ms ,流量将锐减 20%,这个数据到现在只会更加恐怖!

评价网站性能好坏的一个主要指标就是页面响应时间,也就是说用户打开完整页面的时间。IT 业内的人一般都了解,普通的基于 JEPG 还有 PNG 图片格式的网页,其图片资源加载往往都占据了页面耗时的主要部分,技术运维人员需要做的就是要 BOSS 知道这个事实而已,进而推动 WebP 技术的使用。

现在业内的很多前端监控工具都是基于拨测的模拟访问。假设,在网络良好、用户机器良好、用户使用 pc 有线网、运营商及 DNS 无任何问题等等情况下的访问,这是真实的用户访问么?!!

像下图这样的,针对用户访问页面时间的真实监控,才能用来作为推动某项技术落地于网站的有力证据。
网站性能优化— WebP 全方位介绍

然后,再通过类似资源加载耗时这样的功能,就像上面说的那样,基于真实的用户体验来抓出拖慢页面响应时间的真正元凶——图片!

网站性能优化— WebP 全方位介绍

笔者之前做过前端优化的工作,国内外的前端性能优化工具也使用了不少,最近也询问了周围做性能优化的朋友,现阶段可以较好实现上面两个功能的工具有:
OneAPM Browser Insight、AppDynamics、Ruxit,大家有兴趣的话可以去尝试下。

WebP 的意义就在于此,通过较小的文件来降低带宽的消耗,为线上服务降低流量成本,更快的展示和更短的图像共享时间,为网站及移动应用用户带去更好的用户体验。

在本文中,主要介绍 Cloudinary 基于云的即时 WebP 图像生成技术以及 Google 开发的通过代码行来实现的 WebP 图像的生成。

三.WebP 的强大优势

1.同等质量但是图片更小

通过 Cloudinary 这个软件,简单地改变 CDN 提供的 URL 的文件扩展名,就可以进行图像格式的即时转换。

例如,有一张以公共 ID 名 「sample」 上传到云的 JPG 图片,现在我们要在网站上嵌入该图像 300x200 px 的缩略图。

下图 1 是由 Cloudinary 使用 JPG 格式生成的,而图 2 是使用 WebP 格式生成的。(注意,通过谷歌 Chrome 浏览器才能正确地查看 WebP 图像)

图 1.sample.jpg 27.9KB JPG
sample.jpg

图2.sample.webp 12.4KB WebP
sample.webp

如果检查网络数据,你会发现,JPG 文件是 27.9 KB 而 WebP 文件只有 12.4 KB,而两张图片看起来几乎相同。这意味着节省了56%的带宽。如果你的网站包含了大量图片,就可以节省一半的流量,让你的网站以两倍于之前的速度加载,访问者肯定更加高兴。

如果使用客户端库,既可以在公共 ID 后面连接「.webp」,也可以将「format」参数设置为「webp」。例如,在 Ruby on Rails 和 PHP 中:

<%= cl_image_tag("sample.webp", :crop => :scale, :width => 300) %>
 
cloudinary.image("sample.webp", { width: 300, crop: 「scale」, quality: 30 });
cloudinary.CloudinaryImage("sample.webp").image(width = 300, crop = 'scale', quality = 30)

3.完美支持无损 WebP 图像

以上所有例子中,WebP 都是有损格式,只保留了 90% 或更低的质量。

WebP 同样支持一如 PNG 格式的无损模式,这种无损模式对于栅格化的矢量图形非常有用(比如,logo),因为这类图像一旦保存为有损模式,就会出现明显的质量下降。

想要生成无损的 WebP 文件,只需将 Cloudinary 的 「quality」 变量设置为 100:

图1.cloudinary_icon.webp

提升网站用户体验—WebP 图片的高效使用

在 Ruby on Rails 也是一样:

<%= cl_image_tag("sample.webp", :quality => 100) %>
四.确定用户比例

正如上面提到的,并不是所有的浏览器都支持的 WebP 图片格式。

目前支持 WebP 的主要是 Chrome,Android 4.0+ 版本还有 Opera 浏览器。这确实是限制 WebP 推广的最大问题,技术人员需要有选择性地决定何时利用它。

但,在另一方面讲,Chrome 是相当受欢迎,尤其是针对 IT 人员或者各个行业的高素质人员来讲,所以,即使只为了提升 Chrome 用户的用户体验并且节省 Chrome 浏览器所消耗的那一部分带宽,使用 WebP 仍然是值得的。

那么问题来了,尽管 Chrome 浏览器和 Android 系统的普及程度是人尽皆知的,关于网站访客的浏览器比例,技术人员同样需要拿出一定的数据来像 Boss 证明,转化 WebP 图像这个操作是有意义的。

所以针对网站用户统计的工具就非常重要了,而且这个工具还不能是像 GA、百度统计以及 CNZZ 这样的营销工具,一定要基于真实用户访问的用户访问统计图才有说服力。

提升网站用户体验—WebP 图片的高效使用
提升网站用户体验—WebP 图片的高效使用
这个要识别起来其实很难的,因为各种机型浏览器非常复杂,目前国内外 APM (性能优化)领域涉及这个方面并且做的符合需求的工具也给大家推荐几个:
OneAPM Browser Insight、AppDynamics、NewRelic

五.通过命令行将图像转换为WebP

除了可以通过 Cloudinary 这款软件来生成 WebP 图片之外,还可以通过代码命令来生成相应的 WebP 图片。

谷歌已开发了大量实用的命令行将图像转换为 WebP,每个人都可以从谷歌开发者网站下载。当你有一个实用程序的副本之后,你可能想要将实用程序的 bin 文件夹添加到您的本地路径,这可以通过将以下代码添加到你的主目录 下的.bash_profile 文件中来实现(针对 Mac/Linux 系统)。

PATH=$PATH:"/path/to/libwebp-utilities/bin"  
export PATH  

你需要更新下引用路径来表示你的系统上 WebP 实用程序文件夹的位置。重新启动终端止,就能够访问命令行实用工具了。

另外,Mac 可以使用homebrew来安装实用程序。

brew install webp  

:homebrew 不是总能匹配项目网站的最新版的。

安装实用程序完成后,就可以使用 cwebp 将 JPEG 或 PNG 图像转换成 WebP 格式。

cwebp [options] -q quality input.jpg -o output.webp  

质量选项应该是 0 (差)到 100 (很好)之间的数字,典型的质量值大约是 80,但是你也可以多多尝试,直到文件质量和大小都让你满意。

完整的选项列表,可以使用此实用工具运行带有 -longhelp 的 cwebp 命令,或者查看帮助文档。

:也可以使用 dwebp 实用程序将 WebP 图像转换回 PNG、PAM、PPM 或 PGM 图像。

dwebp input_file.webp [options] [-o output_file]  
六.基于访客浏览器的动态 WebP 生成

就像上文说过的,为了仅针对 Chrome/Android4/Opera 的访客生成 WebP 图像,你可以使用 JS 代码根据访客的浏览器信息加载图像。

Cloudinary 的 jQuery 插件能帮助你动态地生成展示 URL,后者会即时地生成图片,再通过带有高级缓存的 CDN 快速地展示结果。

例如,你可以在 HTML 页面定义图片标签,将 「src」 属性设置为空白图片,将 「data-src」 属性设置为已经上传至 Cloudinary 的实际图片的公共 ID 值。

<img src="blank.png" width="150" height="100" data-crop="fill" data-src="sample.jpg"/>

下面的 jQuery 代码会将所有图片标签转换为动态生成的图像 URL,而不是占位的空白图片。

$('img').webpify();

该页面加载很快,无需等待图片加载。之后,上面的 jQuery 代码会动态地更新图片标签,根据访客浏览器支持 WebP 格式与否,生成 WebP 图像或 JPG 图像。

Chrome 下的结果:

<img src="http://res.cloudinary.com/demo/image/upload/c_fill,h_100,w_150/sample.webp"width="150" height="100" data-crop="fill" data-src="sample.jpg">

其他浏览器下的结果:

<img src="http://res.cloudinary.com/demo/image/upload/c_fill,h_100,w_150/sample.jpg"width="150" height="100" data-crop="fill" data-src="sample.jpg">

欲知有关 jQuery 插件的更多细节,可以点此查看文档。

七.总结

现如今,网站与移动应用的富媒体内容越来越丰富,追踪带宽使用情况、优化下载和上传时间,对于优化用户体验都是至关重要的。很明显,与 JPEG 或 PNG 相比 包括在图片大小和质量之间的平衡,以及这个新兴的格式支持的功能等方面来讲,WebP 有许多优点。

WebP 格式是帮助你优化用户体验的又一利器,虽然浏览器对 WebP 的支持仍有很多需要改进的地方,但是恰当是使用一些工具和技术,很容易体会到 WebP 的好处,也不会疏远使用不支持这种格式的浏览器的用户。

:本文改编自外文文章“How to support WebP images, save bandwidth and improve user experience” ,by Nadav Soferman ,由 OneAPM 产品运营整理改编发布.

原文地址:
http://cloudinary.com/blog/how_to_support_webp_images_save_bandwidth_and_improve_user_performance

Browser Insight 是一个基于真实用户的 Web 前端性能监控平台,能够帮大家定位网站性能瓶颈,网站加速效果可视化;支持浏览器、微信、App浏览 HTML 和 HTML5页面。想技术文章,请访问 OneAPM 官方技术博客。

本文转自 OneAPM 官方博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_783066.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速发现网站恶意镜像与网页劫持?

本文作为一篇软文&#xff0c;没错&#xff0c;就是软文&#xff0c;主要目的是宣传产品&#xff08;太直接了是不是不太好&#xff09;&#xff0c;但是小编保证&#xff0c;本文所说的皆为事实&#xff0c;可作为呈堂证供~&#xff01; 互联网时代下&#xff0c;每个网站最看…

网站页面优化必然趋势—WebP 图片!

本文梗概&#xff1a;众所周知&#xff0c;浏览器可以通过 HTTP 请求的 Accpet 属性 来指定接收的内容类型。依靠这个技术&#xff0c;可以在不修改任何 HTML/CSS 或者图片的情况下&#xff0c;向浏览器提供优化的图片&#xff0c;从而降低带宽消耗&#xff0c;提高页面加载速度…

旅游移动端网站—慢!慢!慢!

一.前言 随着智能手机和数据网络的不断普及&#xff0c;真正的「移动互联网」的世界必然到来&#xff0c;无论是学生还是工作者&#xff0c;无论是旅行规划时还是旅游途中&#xff0c;使用智能手机进行搜索&#xff0c;应对途中的各种突发请款&#xff0c;这种趋势依然不可避免…

Wordpress 网站搭建及性能监控方法详解!

前言 说到 Wordpress&#xff0c;大家往往想到的是博客&#xff0c;其实&#xff0c;如今的 WordPress 已经成为全球使用量最多的开源 CMS 系统。并且&#xff0c;如果你有一定的技术基础稍加改动&#xff0c;就可以搭建出新闻网站、企业网站、电影网站&#xff0c;甚至是商城…

欺诈网站都注重用户体验!你,还在等什么?!

一.背景介绍 小编是北京 OneAPM 公司 Browser Insight&#xff08;后文称 Bi&#xff09;的运营人员&#xff0c;这款产品主要用处是针对网站前端页面进行性能优化&#xff0c;以提升用户体验&#xff0c;所以每天小编都要做很多运营工作&#xff0c;例如&#xff1a;写文章&a…

网站安全:你面临2个至关重要的挑战!

近期的 NAGW&#xff08;National Association of Government Web Professionals&#xff09;会议让笔者收获颇深。该会议旨在通过聚集来自联邦/州/地方市政府网络专家来探讨可能存在的领域内机构、教育以及合作。而通过本次会议&#xff0c;笔者不仅了解到了政府在相关方面的动…

网站安全:你面临2个至关重要的挑战!

近期的 NAGW&#xff08;National Association of Government Web Professionals&#xff09;会议让笔者收获颇深。该会议旨在通过聚集来自联邦/州/地方市政府网络专家来探讨可能存在的领域内机构、教育以及合作。而通过本次会议&#xff0c;笔者不仅了解到了政府在相关方面的动…

2016全球排名前50的博客网站性能

【编者按】本文由 Royal Pingdom 博客首发&#xff0c;主要介绍其测得的全球排名前50博客的网站性能。文章系国内 ITOM 管理平台 OneAPM 编译呈现。 在Royal Pingdom博客&#xff0c;我们喜欢测评和分析网站的性能。现在&#xff0c;是时候重新评测全球排名前50博客的网站性能…

网站经常崩溃,企业应该如何做好监控?

近些年&#xff0c;我们的生活因互联网发生了翻天覆地的改变。从搜索引擎到即时通讯&#xff0c;从电子购物再到文化娱乐&#xff0c;从吃饭住宿到旅游出行&#xff0c;互联网已经渗透到我们生活的方方面面。但网站、应用崩溃的事情似乎每天都在发生&#xff0c;而且节假日发生…

docker 初识之二(简单发布ASP.NET Core 网站)

docker 初识之二&#xff08;简单发布ASP.NET Core 网站&#xff09; 原文:docker 初识之二&#xff08;简单发布ASP.NET Core 网站&#xff09;在发布ASP.NET Core网站以前&#xff0c;先介绍一下DaoCloud 一个免费的docker云容器服务平台。登陆官方网站&#xff0c;创建一台d…

SEO|搜索引擎优化(如何让你的网站排名靠前)

如何让你的网站排名靠前 网站做好了&#xff0c;怎样才能让你的网站在各大搜索引擎中排名靠前呢&#xff1f;网上的帖子很多&#xff0c;通过搜索和总结&#xff0c;整理出了一套自己行之有效的方法&#xff0c;写出来供大家参考 成功案例推荐&#xff1a;天气预报、43997k7k小…

都说网站搜索聚合页很有效?到底有没有效,看完这一篇你就懂了!

一&#xff0c;天天都说搜索聚合页面很有效&#xff0c;那到底有没有效&#xff1f;说多无益&#xff0c;上例子&#xff1a; 1.1&#xff0c;有名的SEO讨论网站搜外网&#xff0c;有一个帖子&#xff0c;大家可以看看&#xff1a;https://ask.seowhy.com/question/16714 1.2&a…

Github以及其他网站访问慢或者图片加载不出来解决办法(Windows)

下面为Windows的解决办法&#xff0c;修改hosts文件。 现象&#xff1a;ping网站&#xff08;github.com&#xff09;请求超时。 原理&#xff1a;访问网址时先搜索hosts文件&#xff0c;如果在hosts文件中有网址对应的ip则不需要dns域名解析&#xff0c;因此可以将网址的ip配成…

使用VS2012开发的网站或者webservice在IIS6.0上发布的注意事项

由于新版的VS2012的出现&#xff0c;很多人转而使用VS2012作为开发工具&#xff0c;微软每次新的版本都会新增一些功能&#xff0c;带给我们不少的惊喜&#xff0c;但是在VS2012或者VS2010下开发的网站或者webservice在部署时要注意了&#xff0c;由于VS2010以上版本的.net fra…

如何在首页只显示所有子网站的特定通知

我们设置好了在首页显示所有子网站&#xff08;部门网站&#xff09;的通知。但是&#xff0c;正常情况下&#xff0c;部门网站中的通知会包括发布到整个公司的通知以及本部门内部的通知。而在首页中显示的应该是针对整个公司的通知&#xff0c;下面我们就来进行一些设置。 在顶…

真假平安保险网站

KAO&#xff0c;骗子的仿真度太高了&#xff0c;以前没去过平安保险的网站&#xff0c;刚在挂马列表中发现这个http://www.pingan-china.com.cn/index.asp&#xff0c;进去网盾报告有毒&#xff0c;还以为是真的平安保险被挂了&#xff0c;而实际上这只是个钓鱼站点。这个站才是…

引用其它网站php文件,防止其它网站引用自己网站的链接

时间&#xff1a;2014-03-22 发布人&#xff1a;SHX 浏览次数&#xff1a;2149 评论&#xff1a;0网站的图片被盗链&#xff0c;是一件让人非常郁闷的事情。盗链不仅盗用图片&#xff0c;更直接的问题是用户在下载盗链人网站上的图片时&#xff0c;会给服务器带来压力&#…

10容易实现基于Flash的MP3播放器为您的网站

闪存MP3播放器酷的&#xff0c;因为他们让Web开发人员和博客嵌入音乐播放器&#xff0c;并在网站上建立定制点唱机。 与这些在线音乐播放器&#xff0c;您可以轻松添加歌曲列表和JavaScript代码嵌入到您的网站。这些音乐播放器&#xff0c;大多是定制的&#xff0c;你可以有你赢…

卢松松:12306网站订票详细攻略

短短数日全球ALEXA排名260&#xff0c;日订单量有望第一、不愁销售额、转化率&#xff0c;甚至有很多用户的钱被吞了&#xff0c;还是不甘心&#xff0c;再次冲进去购买&#xff0c;当之无愧的第 一。它界面丑陋、UI粗糙、服务器不稳定、用户体验更是烂到极点&#xff0c;未做一…

html地图百度提交,使用百度网站地图插件(sitemap)向百度提交链接

百度sitemap提交现在已经开放了&#xff0c;在很久之前这个功能是内测版需要申请的&#xff0c;这里向大家介绍一下如何利用WordPress插件向百度提交sitemap(网站地图)。网站地图(sitemap)或者称为站点地图&#xff0c;是什么来自百度百科的站点地图说明&#xff1a;(http://ba…