UI设计师-前端基础-前端性能优化_图片优化:格式选择与懒加载.docxVIP

UI设计师-前端基础-前端性能优化_图片优化:格式选择与懒加载.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

前端性能优化概览

1理解前端性能的重要性

在互联网时代,用户体验是决定一个网站或应用成功与否的关键因素之一。前端性能直接影响用户对网站或应用的响应时间和交互流畅度,进而影响用户的满意度和留存率。优化前端性能能够减少页面加载时间,提升用户体验,同时还可以降低服务器负载,节省带宽资源。对于电商、新闻、社交等需要快速响应的网站,性能优化尤为重要,它能够直接影响转化率和广告收益。

2性能优化的基本策略

前端性能优化涉及多个方面,包括代码优化、网络优化、资源优化等。本节将重点介绍图片优化中的两种策略:格式选择与懒加载。

2.1图片格式选择

2.1.1原理

不同的图片格式具有不同的压缩率和渲染特性。选择合适的图片格式可以有效减小文件大小,从而加速页面加载。常见的图片格式有JPEG、PNG、GIF、WebP和SVG。

JPEG:适合有大量色彩变化的照片或图像,支持有损压缩,可以调节图像质量和文件大小之间的平衡。

PNG:适合需要透明背景的图像,支持无损压缩,保留较高的图像质量,但文件大小通常大于JPEG。

GIF:适合动画图像,支持有限的色彩(256色),不适用于复杂图像或照片。

WebP:Google推出的图片格式,支持有损和无损压缩,且压缩率高于JPEG和PNG,在相同质量下文件更小。

SVG:矢量图形格式,适用于图标和图形,文件大小极小且清晰度不受分辨率影响。

2.1.2优化策略与代码示例

在HTML中使用picture元素和source元素可以智能地根据用户浏览器支持的图片格式选择最佳格式。

picture

sourcesrcset=image.webptype=image/webp

sourcesrcset=image.jpegtype=image/jpeg

imgsrc=fallback.jpgalt=描述

/picture

在上述示例中,浏览器会优先尝试加载image.webp,如果WebP格式不受支持,则会尝试加载JPEG格式的图片。最后,如果所有格式都不支持,将加载fallback.jpg作为回退选项。

2.2图片懒加载

2.2.1原理

懒加载是一种资源加载的优化策略,它延迟加载页面中某些部分的内容,直到用户滚动到该部分或执行某些操作时才加载。对于图片来说,懒加载可以在页面初始化时只加载可视区域内的图片,当用户滚动页面时,再异步加载即将进入可视区域的图片,从而减少页面初次加载时的资源请求,提高加载速度。

2.2.2代码示例与优化策略

使用原生的loading属性可以实现懒加载:

imgsrc=placeholder.jpgdata-src=actual-image.jpgalt=描述loading=lazy

在上述示例中,src属性中的placeholder.jpg是一张较小的预加载图片,当图片进入可视区域时,data-src中的实际图片actual-image.jpg才会被加载。loading=lazy属性告诉浏览器只有当图片即将进入视口时才开始加载。

对于不支持原生懒加载的浏览器,可以使用JavaScript来实现相同的懒加载效果。下面是一个使用IntersectionObserverAPI实现懒加载的示例:

letimagesToLoad=document.querySelectorAll(img[data-src]);

constimgOptions={};

constimgObserver=newIntersectionObserver((entries,imgObserver)={

entries.forEach(entry={

if(entry.isIntersecting){

constimg=entry.target;

img.src=img.dataset.src;

img.classList.remove(lazy);

imgObserver.unobserve(img);

}

});

},imgOptions);

imagesToLoad.forEach(img={

imgObserver.observe(img);

});

在上述代码中,首先我们选取所有具有data-src属性的img元素。然后,使用IntersectionObserverAPI来监控这些元素是否进入可视区域。一旦元素进入可视区域,我们用实际的图片URL替换src属性,并移除lazy类,最后停止对这个元素的观察。这种方法可以确保图片只在需要时加载,从

文档评论(0)

kkzhujl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档