当前位置: 首页 > 网络应用技术

绩效优化全面的图片转换解决方案

时间:2023-03-09 00:19:16 网络应用技术

  在最近对业务绩效的观察中,注意了系统中图片的比例,但是有些经历了诸如空白闪烁等问题。一些页面如下。

  某些场景的加载拦截

  可以看出,这是一个典型的图形显示页面,系统中有许多类似的场景。加载第一个屏幕的图片资源消耗也很耗时 - 耗时,课程列表中的灯塔分析。图片的比例和大小很大。

  因此,这里的优化收入相对显而易见,可以为用户和公司带来利益,但缺乏系统的优化过程。

  在开始之前,我们可以理解一些基础知识,例如图片格式,什么是无损和损坏的压缩。

  由于图片已加载,因此我们首先排序并查看常见的图片格式,因为格式也是影响图片加载的重要因素。只需列出常见的图片格式:

  损害压缩的定义Wikipedia:数据压缩(英语:有损压缩)是一种数据压缩方法。此方法之后的压缩和解压缩数据将与原始数据不同,但非常接近。DAMAGE数据压缩也称为破坏性数据压缩和不可逆的压缩。DAMAGE数据压缩被辅助数据放弃,牺牲了一些质量来减少数据量并提高压缩比。对各种格式的设计进行延长,损坏数据的压缩将具有代理损失 - EAKE EAPH压缩和减压文件将带来逐渐下降的质量下降。

  由于压缩的损失,数据本身的数量已减少,图像的质量以牺牲图像质量为代价而牺牲。因此,在磁盘职业和内存职业方面,压缩文件将小于原始图像。在对当前对图片加载方法的讨论的响应中,相应的损坏和压缩,目标是较小的内存职业,并且更快地解码速度。

  Wikipedia百科全书的定义:无损压缩(无损压缩)是指压缩后信息未破坏的信息,并且可以在压缩前完全恢复为原始内容。相反,损坏数据的压缩仅允许一个类似的数据重建以换取更好的压缩率。在许多应用程序中使用了造成的数据。数据”。

  非毁灭性压缩的方法可用于通过一些编码方法来减少重复信息的磁盘占用。对于图片,减少了磁盘上图片的空间占用。但是,它不会减少图像的记忆占用。这是因为当从磁盘或网络请求获得图像时,浏览器将解码图片以填充丢失的像素的适当颜色信息。

  因此,如果要降低内存图像占用的能力,则必须使用损失方法。

  WebP是一种现代图像格式,可为Web上的图像提供出色的损失和损失压缩。使用WebP创建较小,更丰富的图像以使Web更快地使用PNG,WebP无损图像的大小较小26%。SSIM质量索引,WebP损坏的图像比JPEG图像小25-34%。无限制的WebP支持透明度(也称为Alpha Channel),只有22%的字节。对于可以接受RGB损失的情况,损坏WebP还支持透明度,通常提供的文件大小比PNG小3倍。

  让我们获得直观的体验

  您还可以在这里戳戳以查看社区中其他学生的比较效果。您可以看到WebP在图片的音量和效果方面做得很好,这非常适合我们的场景。现在,WebP的使用已被广泛使用,例如YouTube和Douyin PC。

  YouTube的某些页面的拦截,在大型地图(例如封面地图)中使用的WebP格式

  Douyin PC站

  WebP的压缩技术基于VP8密钥帧编码。WebP压缩使用已知图像片段来准确重建新像素并没有损坏。在找不到相应的匹配值时,使用本地颜色面板来优化。在WebP开发人员平台上,它已经具有详细的压缩技术扣除额,可以直接在此处键入。

  随着浏览器对WebP的支持的普及,越来越多的互联网开始使用WebP。这是一些数据:

  结论:通过可行的验证获得了技术和使用,并且有明显的好处。

  图片的优化分为加载阶段和显示阶段。

  图片卷的音量直接反映了需要加载网络的时间,这等同于磁盘职业,因此减少图像卷可以直接减少图片请求的时间。然后在第一个屏幕上增加相关的内容诸如FCP之类的指标,以便浏览器可以获取数据以更快地绘制。

  记忆职业的记忆职业与图片的音量不同。两张不同卷的图片可能具有相同的记忆职。因此,优化的内存职业可以使浏览器解码图片和光栅时间,因为无需计算如此多的图片信息即可绘制如此多的图片信息的缩短光栅时间直接影响页面的渲染速度,并且在页面上遇到了卡在页面上。。

  加载场所占据的是加载感知以改善用户体验。避免在等待过程中使用用户的损失。

  懒惰的懒惰也是各种站点的常规优化方法。懒惰加载可最大程度地减少不必要的资源请求,以提高浏览器的渲染效率并减少内存职业。大幅度减少不必要的带宽是用户和公司节省资金的一种方式。

  格式静修会以不同格式对浏览器的图片具有不同程度的支持。我们的某些优化方法和格式可能不适用于所有浏览器,但是为了确保性能和经验以及最大兼容的支持,我们需要格式化图片格式。dowager.dowager。例如,自动降级不支持WebP的浏览器到PNG。

  错误占据错误也是必要的步骤。当所有尝试失败时,我们还需要一种很好的方法来显示和感知用户。例如,当前业务中的错误。

  与我们优化思维的加载阶段相对应,我们使用公司的现有平台功能。我们可以获取不同格式和压缩比的图片。例如,我们选择两种格式:具有压缩比75和原始图片的WebP。用作默认格式,原始图片用作备份的口袋资源。在这里应注意的是,图片列表需要服务器的支持,因为系统的当前系统是通过服务器返回的URL,因此此部分需要构建。

  基本格式如下

  模板配置如图所示

  关于为什么需要图片地址,主要是为了促进我们进行返回过程。在浏览器不完整的情况下,我们牺牲流量以换取可以正常显示以确保内容可见的图片。此处获得的消费过程如下。

  通过过去一周的网站数据统计数据,当前的业务团体浏览器数据如下,其中铬占78.66%,浏览器版本的铬铬最低为55,最低的fireforx为99webp.data的范围是兼容的,而无需考虑移动浏览器。由于IE也有很小的比例,即触发降级的最高比例。

  这里的图片加载是优化想法的显示阶段的实现,它主要包括从加载到失败的整个过程,当然还有懒惰的加载。不同的方法用于加载我们的观察阶段和稳定阶段。观察阶段的计划阶段。最稳定的解决方案是图形方法,可以在下面的稳定阶段看到。

  该观察结果主要用于数据比较。在这里,我们使用XX图片处理包来制作图片。有三个主要原因:一旦场景验证了Douyin PC和西瓜视频的场景,报告第二集成的能力就可以获取Picturethird的相关数据,它提供了图片加载和撤退的支持,以满足当前场景。用如下示例

  此图片处理软件包包含图片加载错误的逻辑,该逻辑与上面的图片压缩章节设计的图片列表结合在一起,以完成自动返回。

  错误示例如下所示,我们提供了一个可用地址,其中不可用的SRC和backup-SRC的第一个地址。预计它可以自动降级到最后一个可用的地址

  为了确保图片加载过程的可控性,例如图片中的响应加载过程即将出现。因此,某些一般默认的拦截图片和自动加载不适用,因为我们不能严格控制显示器每张图片的时间和拦截都不容易。因此,懒惰通过实现手动加载我们,基本代码如下,其中之一是实现包装。

  通过这种方式,我们清楚地控制了每张图片的加载时间,并完善了负载结果的控制和处理。完成观察后,立即清除观察结果并完成了负载。

  我们通过第一步获得了几种可用格式,因为我们不知道用户的浏览器会是什么样,因此我们不知道它会用大脑替换,因此我们需要知道WebP格式是多少加载了什么时间加载图片。有多少人回到原始地图以及加载的时间是什么。,等等。因此,我们需要监视图片加载。

  专注于您可能已经注意到,我们的图片加载部分中有一部分,是的,这用于制作报告,报告过程为。报告。这样,我们可以根据数据情况查看转换的用户覆盖范围和使用范围,以便我们可以遵循 - UP分析。

  此步骤是我们优化结果的进一步结论的导出。这是什么意思?以我们加载的图片类型数据为例,如果我们的WebP支持良好,则可以将其用作下一个实验对象来验证较高的性能。如果每种格式都非常慢,那么我们可以自然地使用推动CDN以优化解决方案。在同一时间,如果WebP不支持它,您还可以查看我们的降级策略是否有效,并且保证系统的高可用性。ETC.bbs.bbs.bbs.bbs.bb,因为我们获得了数据支持,它变得更加容易推。

  我们已经完成了通过先前练习所需的数据观察和预期结果。这次,我们已经有了在线加载,解码时间,加载稳定性相关的数据以及扭转上游和下游和下游的合理性以及上游和下游的合理性的图片系统的下游,例如对课程封面场景的限制。上图尺寸为10m,但是无论如何,这种限制都严重影响了负载性能,然后到200k是一个适合的价值,可以满足两种需求,并且不影响性能的性能。然后,这是从实验阶段得出的优化结果。它也是进入稳定性的重要步骤。因此,需要对上一个步骤的实验阶段进行分析。

  因此,经过一堆,我们可以在稳定的阶段做某事。当然,我希望对一点点进行优化,所以我们有两件事。一个是放弃先前的监视,另一个是更改图片以处理图片并满足我们的场景。第一步更为明显,因为监视本身具有交通损失和代码量。第二步是添加JS处理图片以顺畅地降级到浏览器以支持。因此,有以下形式的代码

  在这里,我们使用图片标签自动降级图片。图片标签上的用法和场景可以是本文。从总体上讲,这是进行响应图片和自动降级的更好方法。我不会在这里开始。我们通过上面的代码对我们的兼容格式进行分类以满足现场图片。该示例的浓度格式将在未满足加载时降级为顺序。因为图片的加载事件最终将落在IMG标签上,因此上面的侦听方法仍然适用。

  在这一点上,我们总结了稳定阶段和实验阶段中使用的加载策略。但其中一件事是两者没有冲突。我们希望继续保持开放针对新业务场景的实验性观察的能力,稳定的业务,可以继续使用稳定的方案计划。因此,我们只需要稍微更改即可完成此支持,并且在下面粘贴了完整的代码。在这里应注意,尽管保留了两者的能力,但它不会影响主页的音量,因为JS监视图片的方法也被动态加载。因此损失。

  https://sementfault.com/a/1190000016735421

  https://zhuanlan.zhihu.com/p/30534023

  https://developers.google.com/speed/webp

  https://developer.mozilla.org/zh-docs/web/html/element/picture

  https://developer.mozilla.org/en-s/docs/html/multimedia_and_embedding/responsive_images

  以上是此共享的所有内容,我希望能帮助您^_^

  如果您喜欢它,请不要忘记分享,例如收集三家公司?。

  欢迎注意公共帐户ELAB团队,在大型工厂中收获一篇好文章?

  我们来自殴打字节。它是其强大教育的前端部门。它负责开发字节击败教育产品的前端产品。

  我们已经围绕产品提高,开发效率,创造力和切割技术等的方向为行业贡献了经验价值,并为行业做出了贡献。包括但不限于绩效监控,组件库,多端技术,多端技术,无服务器,视觉结构,音频和视频,人工智能,产品设计和营销以及其他内容。

  欢迎来到有兴趣的学生推动作者部门在评论区域拍摄砖头或使用内部推动代码?

  字节击败学校/社会招聘交付链接:

  https://jobs.toutiao.com/s/fx7ebqk

  内推代码:WNQ6VQA

  原始:https://juejin.cn/post/7099398268190195742