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

news/2024/5/20 17:31:30/文章来源:https://blog.csdn.net/weixin_30649859/article/details/99219982

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

主要实现方式:

  • 图片压缩率更好,文件大小更小的 WebP 格式。
  • 服务器根据 HTTP 的 Accept 属性 来决定向浏览器发送哪种格式的图片
  • 利用一些图片转化技术,对支持的浏览器自动发送 WebP 图片,不支持的发送传统格式图片

介绍一些当下流行工具来检测网站的真实用户体验,并定位问题所在。

网站优化第一难题:图片!

开发者竭尽全力以减少 web 页面下载时间,实现更快的页面加载速度,办法无外乎删除 CSS/JS 代码中的空白符和注释,重命名变量等等。然而这些方法收效甚微,他们忽略了网页中的「大笨熊」:图片!

与图片文件相比,CSS/JS 代码简直小巫见大巫:

  • httparchive.org 数据显示,图片传输在平均网页传输中的占比达 60% 以上。
  • GigaOM reports 的统计则表明,2010 年 11 月到 2012 年 5 月间,网页大小增加了 50%,到 2015 年,网页平均大小达到 2MB。

与此同时,移动设备的使用量急剧增长,但是,它们面临着收费高昂且受限的宽带条件。我们需要调转船头,拥抱正确的未来!

真实的页面响应时间

评价网站性能好坏的一个主要指标就是页面响应时间,也就是说用户打开完整页面的时间。任何一项技术的使用都是有风险的,更何况是在公司的网站上,你必须要有一定的数据和证据来说服你的 Boss 或者相关负责人才行。

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

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

同样重要的是要定位到图片资源加载的时间,如果拖慢网站页面加载的主要原因就是图片资源的话,那就算你不抓紧的话,老板也会逼着你让你去解决这个问题,这个时候,WebP 就派上用场了。

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

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

页面优化首选策略:WebP 格式图片!

万幸,Google 等公司已经在积极行动以降低宽带消耗,他们带来了新的图片格式——WebP

WebP 能在减小文件大小的同时提供有损(JPEG)和无损(PNG)格式图片的支持。Google官方文件表明:

  • 无损压缩后的 WebP 图片可比 PNG 原图小 26%,有损压缩的 WebP 图片,在同等 SSIM 算法的情况下,比 JPEG 图像小 25-34%。
  • WebP 还支持无损透明度(也叫阿尔法通道),只需增加 22% 的额外字节。
  • 采用有损压缩时,WebP 也支持透明度,且如果红/绿/蓝通道支持有损压缩,可比PNG 图片缩小 3 倍。

Chrome 和 Opera 浏览器均支持 WebP 格式,Firefox 也在考虑当中,随着使用率的提高,宽带的优势愈发明显,WebP 可能会成为未来的网页图片标准。

然而,WebP 也引来一些质疑之声。对于平面设计师、网页设计师、和程序员来说,使用 WebP 时,如何避免手工处理过程,如何向不支持 WebP 的浏览器提供图片,如何更新以前对.jpg、.png 和 .gif 文件的引用,都是要解决的问题。

自动转换到 WebP!岂不妙哉!

现在大家应该了解了为什么 WebP 与众不同,为什么考虑在 Web 应用程序中使用它,下面介绍的是如何将你现有的图像转换为 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]  
PageSpeed 自动转换模块

很高兴有工具可以手动将图像格式转换成 WebP 。

但正如我们之前看到的,并不是所有的浏览器都支持这种图像格式,因此需要一种可以预览 WebP 图像,并且使不支持 WebP 格式的浏览器可以用 JPEGs 或 PNGs 替代的服务。本来可以写一些复杂的服务器端代码,找出用户的浏览器是否支持 WebP 然后提供适当的文件,但幸运的是我们不需要这么做。

由谷歌开发的 PageSpeed 模块有一个功能,会自动将图像转换成 WebP 格式和服务端的浏览器所支持的格式。很神奇,就像魔术一样,而且设置也很简单,只需要将一行代码添加到你的主机配置中,启用这个特性。

ModPagespeedEnableFilters convert_jpeg_to_webp  

:如果你不熟悉 PageSpeed 模块,可以看下这个英文的帮助文档,关于如何在 Apache Web 服务器上设置 mod_pagespeed.

使用 convert_jpeg_to_webp 选择器可以使 PageSpeed 模块在适当的地方开启图像优化和自动转换 WebP 图像的服务。最初这只适用于 JPEG 图像,但你也可以通过开启 convert_png_to_jpeg 选择器使其支持 png 图像。

ModPagespeedEnableFilters convert_png_to_jpeg  

根据谷歌报导,目前有超过 300000 个网站使用 PageSpeed 模块(或服务)为用户提供 WebP 图像.

在自己的服务器上使用 PageSpeed 模块的方法非常简单,可以充分利用 WebP 的优势。

时下重点:Accept Header

其实很大程度上,WebP 在浏览器中的成功使用还是要归结于 HTTP 请求头中的 Accept 首部(accept header)。通常的浏览器请求都会包含软件平台、cookies、语言设置等信息,而从本文的讨论来讲,重点是Accept」首部——浏览器通过该首部告诉服务器,「这些是我能理解的文件类型」。

官方的 HTTP/1.1 协议早在多年前就已经解决了服务器驱动内容协商问题,但大多数浏览器还是忽视了 Accept 部分。

Ilya Grigorik, 作为谷歌 「 Make The Web Faster」团队的发起人,曾经总结过时下各种浏览器对于 Accept 的发送情况
网站页面优化必然趋势—WebP 图片!

可以看到,Opera 是唯一既展示 WebP 图片又官网表示接受 image/webp 内容类型的浏览器,Chrome 可以展示 WebP 图片,但是没有在 Accept 中说明。

好消息是,从 Chromium 的相关动作来看,image/webp 可能很快就将加入 Accpet 首部,毕竟 Chrome 的开发速度摆在那里。而也有很多用户在 Firefox 的 WebP support bug 中,提及了相关建议:「如果更新还包括修改 Accpet 中对于图片和 HTML 文件的声明,那就太好了!」之前 Firefox 在支持 PNG (在 Accept 首部中添加 image/png )时,也发布过类似的更新,估计加入 image/webp 时也会这么做。总的来说,Opera 已经支持 WebP ,Chrome 则会快步跟上,而 Mozilla 正在进一步了解当中。

确定用户比例

那么现在还有一个问题,你如何确定网站的用户有多大比例支持 WebP 呢?这个也同样需要拿出一定的数据来向 Boss 证明,转化 WebP 图像这个操作是有意义的。

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

网站页面优化必然趋势—WebP 图片!
网站页面优化必然趋势—WebP 图片!
这个要识别起来其实很难的,因为各种机型浏览器非常复杂,目前国内外涉及这个方面并且做的符合需求的工具也给大家推荐几个:
OneAPM Browser Insight、AppDynamics、NewRelic

总结

近几年,互联网的爆发已经转变为「互联网+」的爆发,但同时每天也都有各种大小公司破产或者被兼并。在增加销售额的同时,从运营与增长的角度我们必须要考虑用户体验,所以,WebP 图片的流行必然是一个趋势,而我们要做的就是积极的去拥抱它。

另外,前几年很火的拨测很多情况下已经捉襟见肘了,找到一款合适的真实用户体验工具更是重要。希望本文可以在用户体验角度给大家以帮助。

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

本文转自 OneAPM 官方博客

转载于:https://www.cnblogs.com/oneapm/p/5157153.html

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

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

相关文章

AnjularJs的增删改查(单页网站)

2016.6.4 学习文献: 你的第一个AngularJS应用:https://segmentfault.com/a/1190000000347412 AngularJS 提交表单的方式:http://www.oschina.net/translate/submitting-ajax-forms-the-angularjs-way AngularJS中$http服务的简单用法:http://…

mouseover,mouseout与mouseenter,mouseleave

针对单个元素,使用感一样。 差异提现在有子元素的情况下: mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言。mouseenter和mouseleave只在父元素触发,当鼠标穿过一个…

如何让浏览器打开一个网站的时候执行一个自定义脚本

以chrome为例,先安装一个tampermonkey的插件,安装好之后点击一下按钮,添加新脚本,写入如下代码之后保存。 第七行的意思是,当我们打开百度的时候才会执行这个脚本。脚本的作用就是弹出一个消息。 转载于:https://www.cnblogs.com/…

docker (2)---存储、网络(利用docker容器上线静态网站)

一、docker底层依赖的核心技术 1、命名空间 (Namespaces) 2、控制组 (Control Groups) 3、联合文件系统 (Union File System) 4、Linux 虚拟网络支持:本地和容器内创建虚拟接口 (1) 命名空间(Namespaces): 实现了容器间资源的隔离,每个容器…

从QQ网站中提取的纯JS省市区三级联动

今天收到园友信息,想问我要原来写的一个 《 纯JS省市区三级联动 》文章中最新的省市区数据。 那个是老早以前搞的。记得数据是从数据库中提取生成的。一时也找不到当时的数据库了。 我发现在 http://ip.qq.com/ 的网站中有QQ自己的JS省市区三级联动。所以研究了一下…

无需注册支持快速安全视频的网站

大家好,我是你们的小金子。今天要分享的是一个无需注册支持快速安全视频的网站,既然说到快速,那么我们先来看看到底有多快速。首先打开网站 https://brie.fi/ng/ 会展示如下网页。点击 Start Video Chat,即可直接开始视频。分享右…

Google 出品网站性能质量及错误分析工具

大家好,我是你们的章鱼猫。今天给大家推荐一款由 Google 出品的 Chrome 插件:Lighthouse,它能够分析网站的性能、质量及错误等。市面上类似工具很少,可以看出越大的公司对性能和质量越看重。这款工具通过 Chrome 安装后使用也非常…

GitHub Star 10K,让你的网站更炫酷的开源库

大家好,我是你们的章鱼猫。现在不少网站都支持了骨架屏,能够在网页数据加载前,展示固定的布局,能够减少用户在进入网页时感受到白屏的不适感。今天要给大家推荐一个标星 1 万的开源库:react-content-loader&#xff0c…

1 分钟提升网站使用体验,这么香的方法不想知道吗?

大家好,我是你们的章鱼猫。今天要推荐的开源项目是 instant.page,在介绍项目之前,我们先说说项目的介绍语,如下:Make your site’s pages instant in 1 minute and improve your conversion rate by 1%.什么意思呢&…

非常棒的练手项目, 一个基于 SpringBoot 开源的小说和漫画在线阅读网站

大家好,我是章鱼猫。今天给大家推荐的这个开源项目是一个基于 SpringBoot 实现的小说和漫画在线阅读网站。这个开源项目叫:fiction_house。这个开源项目是一个多平台(web、安卓 app、微信小程序)、功能完善的小说弹幕网站&#xf…

「硬核推荐」一份网站流量变现教程及资料大全

文章首发于微信公众号「GitHub精选」,欢迎大家关注。大家好,我是章鱼猫。今天推荐的这个项目是「awesome-seo」,Google SEO 研究及流量变现。作者为什么要做 SEO?在互联网中,流量就是钱。掌握一定的 SEO 技术&#xff…

天若有情天亦老,我为网站加一秒

文章首发于微信公众号「GitHub 精选」,欢迎大家关注。打开微信,使用 “搜一搜”,搜索「GitHub 精选」,即可关注。大家好,我是章鱼猫。今天推荐的这个项目是「1s」,有些网站,当我们给它 1s 时&am…

开发者论坛一周精粹(第三十六期) 网站备案 oss存储

开发者论坛每周选取精华内容总结,精选论坛优质贴,每周更新一期,方便大家阅读! 依赖SDK时发生错误 ziyeyc http://bbs.aliyun.com/read/576757.html 域名认证,时间太慢了吧 追梦天使11 http://bbs.aliyun.com/read/57…

小爬虫demo——爬取“妹子”等网站链接____使用requests库

# 文章分为三个部分:1. po代码 ;2. 提示运行过程中的一些细节 和需要改进的地方; 3. 常规送福利# 文章将持续完善和补充# 欢迎拍砖、交流、指正第一部分:Po 代码:import re import requestskey input("请输入爬…

知名工具网站-开发、设计

这两年收藏了不少网站,特地整理一下,把一些大家都可能用得上的分享出来,希望能对你有用。 考虑到有一些网站大多数人都知道,所以我就不列出来了。 我把这些网站分为了几大类: 工具类素材类社区类 工具类 1、start.…

HTTPS时代的到来是大势所趋!阿里云CDN如何助力企业网站进入HTTPS时代

摘要: 在2015年,天猫和淘宝已经实现了全站HTTPS,并且在2015年底,阿里云CDN HTTPS产品化并且开始全面对外,并且为越来越多的客户提供HTTPS服务。无论是从阿里内部还是外部的同行,还从是Google的Chrome以及Mo…

在web项目中使用WebBrowser类-----给网站抓图

最近做一个WEB项目,其中要求有个功能就是程序能网页抓图,举个例子: 在test.aspx页面上放一个TextBox和一个Button,TextBox用来输入要抓取的网页地址,然后按了Button之后,服务器要对前面输入的网址进行抓图&…

【新手教程】阿里云视频点播,轻轻松松给网站加上视频的翅膀

您是不是被 网站 视频 问题 弄的焦头烂额、心烦意乱、夜不能寐、寝食难安?那么,看完这里,以上问题统统都可以解决啦。首先,我们开通 阿里云 视频点播功能,传送门: https://www.aliyun.com/product/vod开通需…

2018最受欢迎开源免费CMS建站系统排行榜

随着互联网及web应用技术的蓬勃发展,网上针对企业建站的各种CMS建站系统层出不穷,如今企业建站和维护的成本已不像过去那么高。经常在网上看见有人问及”哪个CMS系统最好用”、”企业建站用哪个CMS系统最多”等类似问题,所以本文将和大家一起…

记一次真实的网站被黑经历

前言 距离上次被DDOS攻击已经有10天左右的时间,距离上上次已经记不起具体那一天了,每一次都这么不了了只。然而近期一次相对持久的攻击,我觉得有必要静下心来,分享一下被黑的那段经历。 在叙述经历之前,先简单的介绍一…