前端页面图片加载优化

本文探讨了前端页面中图片加载优化的方法,包括将图标转换为icon字体以减少加载时间,使用第三方工具压缩图片保持画质的同时减小文件大小,以及实现图片懒加载来提高页面性能。懒加载通过监听滚动事件并使用节流函数避免频繁触发,确保在不影响用户体验的前提下优化资源加载。
摘要由CSDN通过智能技术生成

前端页面图片加载优化
问题:前端页面如果图片资源过多或者过大就会导致用户加载图片时间过长,导致用户体验下降
我总结的优化思路与方法有以下几种

一、将图标换成icon字体管理
如果项目存在大量的图表用的是图片展示会大大降低加载速度,这里推荐使用icon
下面列举阿里图标库使用3种方法:

unicode使用步骤如下:
第一步:拷贝项目下面生成的font-face
@font-face {
   font-family: 'iconfont';
    src: url('iconfont.eot');
    src: url('iconfont.eot?#iefix') format('embedded-opentype'),
    url('iconfont.woff') format('woff'),
    url('iconfont.ttf') format('truetype'),
    url('iconfont.svg#iconfont') format('svg');
}
第二步:定义使用iconfont的样式
.iconfont{
   
    font-family:"iconfont" !important;
    font-size:16px;font-style:normal;
    -webkit-font-smoothing: antialiased;
    -webkit-text-stroke-width: 0.2px;
    -moz-osx-font-smoothing: grayscale;}
第三步:挑选相应图标并获取字体编码,应用于页面
<i class="iconfont">&#x33;</i>

unicode是字体在网页端最原始的应用方式,特点是:
兼容性最好,支持ie6+,及所有现代浏览器。
支持按字体的方式去动态调整图标大小,颜色等等。
但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
font-class 引用
第一步:拷贝项目下面生成的fontclass代码:
//at.alicdn.com/t/font_8d5l8fzk5b87iudi.css
第二步:挑选相应图标并获取类名,应用于页面:
<i class="iconfont icon-xxx"></i>

font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。
symbol 引用
第一步:拷贝项目下面生成的symbol代码:
//at.alicdn.com/t/font_8d5l8fzk5b87iudi.js
第二步:加入通用css代码(引入一次就行):
<style type="text/css">
    .icon {
   
       width: 1em; height: 1em;
       vertical-align: -0.15em;
       fill: currentColor;
       overflow: hidden;
    }
</style>
第三步:挑选相应图标并获取类名,应用于页面:
<svg class="icon" aria-hidden="true">
    <use xlink:href="#icon-xxx"></use>
</svg>

与上面两种相比具有如下特点:
支持多色图标了,不再受单色限制。
通过一些技巧,支持像字体那样,通过font-size,color来调整样式。
兼容性较差,支持 ie9+,及现代浏览器。
浏览器渲染svg的性能一般,还不如png。

二、把图片在不影响画质的情况下进行压缩

我们可以借助一些第三方软件来进行压缩,比如https://tinypng.com/,压缩后分辨率不变,肉眼看不失真

三、前端实现图片懒加载

实现原理:

1、将页面中的img标签src指向一张小图片或者src为空,
2、然后定义data-src属性(这个属性可以自定义命名,我才用data-src)属性指向真实的图片。
3、src指向一张默认的图片,否则当src为空的时候也会像服务器发送一次请求(指向默认的一张图片那就只需要请求一次)。可以指向loading的地址。
4、当载入页面时,先把可视区区域内的img标签的data-src属性值赋值给src。
5、然后监听滚动事件,加载用户即将看到的图片(利用图片出现时距离顶部的高度 < 滚动条距离顶部的高度 + 可视区的高度)。

在这里插入图片描述
图片懒加载的实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值