【性能优化】pc端与移动端图片优化篇

news2024/11/20 10:43:37

目录

优化方向:

优化方式

1.域名收敛

2.使用CDN节点

3.设置缓存

4.图片懒加载

5.用户图片上传限制

6.使用OSS服务压缩

7.使用OSS缩放

8.合成雪碧图

9.使用svg图片


在前端项目中图片的性能优化也有不少可以提升的方向

优化方向:

  • 减少请求数量
  • 缩短响应时间
  • 减少请求图片的大小

优化方式

1.域名收敛

由于浏览器对于同域名的请求并发有数量限制,特别在PC网页端,展示内容多,为了突破限制,静态资源采用子域名请求,例如京东商城的静态图片就采用了m.360buyimg.com的子域名

2.使用CDN节点

图片资源使用CDN加速,访问离自己最近的服务器上,提高访问速度

3.设置缓存

我们可以在图片消息头上面设置Cache-Control,max-age为失效时间

Cache-Control: max-age=31536000

例如京东商城的静态图片设置了允许缓存,且缓存时间为31536000,用户在二次访问商城时无需向服务器再发起请求,直接从内存缓存里读取图片

4.图片懒加载

控制资源请求数量,把有限的资源请求数量限制在用户可视区域

5.用户图片上传限制

防止用户上传过大的图片,在真实项目中曾经遇到用户上传一张图片几MB,甚至十几MB跑回来问为什么图片上时间加载不出来....

6.使用OSS服务压缩

如果图片静态资源是放在阿里云OSS储存中,我们还可以使用图片高级压缩文档。例如将JPEG格式的原图转换为HEIF格式,在不影响图片失真的情况下对图片资源大小尽可能的压缩

7.使用OSS缩放

当上传了一张图片时,我们可能有多个地方用到,比如说商品主图,商品列表图,商品缩略图,此时我们可以使用阿里云OSS的图片缩放功能,根据不同地方的展示不同比例的图片

如何实现老版图片按比例缩放_对象存储 OSS-阿里云帮助中心

8.合成雪碧图

在项目中使用的icon,小图等由于图片体积不大,我们可以把它们都合成雪碧图,减少http请求

例如:京东商城的几个不同颜色的箭头icon

https://misc.360buyimg.com/mtd/pc/index_2019/1.0.1/assets/sprite/tit_arrow/sprite.png

不同的标签icon:

https://misc.360buyimg.com/mtd/pc/index_2019/1.0.1/assets/sprite/content_btn/sprite.png

9.使用svg图片

有时候在项目中用的icon过于小,分辨率很低,在移动端高分辨率屏幕下看起来甚至会很模糊,一般大家可能会使用二倍图,但是还有一种方法就是使用svg图片,可以在放大缩小后都不会失真,svg文件体积更小,可压缩性更高

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言基础知识

Go语言基础知识 一、准备工作 1.1下载安装Go 地址:https://studygolang.com/dl 1、根据系统来选择下载包 2、下载完成后直接双击运行 3、一路next,注意选择安装路径 4、在控制台窗口输入“go version”可查看Go版本,检测是否安装成功 5、…

基于STAN的风力发电预测(Python代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅本科计算机专业,研究生电气学硕…

应届生自学Python两个月,为什么找不到工作?

今天我们来看一个同龄小伙伴自学Python的困惑,他自学了2个月Python就想找一份好工作,但是四处碰壁。对于这样的难题,我们来看看前辈们是如何解决的。 如果你想要学好python最好加入一个组织,这样大家学习的话就比较方便&#xff…

华夏教师杂志华夏教师杂志社华夏教师编辑部2022年第24期目录

视点_青少年党史学习教育《华夏教师》投稿:cn7kantougao163.com 青少年学党史的震阳实践 沙夕岗; 4-527 视点_德育 幸福365,成长每一天——苏州工业园区星澄学校“幸福365”德育课程简介 赵志德; 6-745 学校_基层党建 “1X”党员引领匠心路—…

高通Ride软件开发包使用指南(2)

高通Ride软件开发包使用指南(2)3 Ubuntu系统设置3.1前提条件3.2安装Ubuntu3.3 安装 docker3.4 在Linux主机上安装QNX软件中心3 Ubuntu系统设置 以下步骤准备Ubuntu系统使用docker图像构建工具链SDK,并启用可视化。 3.1前提条件 确保您的电…

三年PHP经验如何提高工资?PHP接单推荐

大家都知道,一般来说以PHP来做开发的有很大一部分是外包公司,如果简简单单的干了一到两年多,那么我相信你的经验值肯定会大幅度提升,但是如果说要真正提高技术或者很快的提高工资,这在我看来,相较于其他语言…

管理员必看!10+个Salesforce仪表板使用技巧

Salesforce仪表板是一种将报表中关键数据可视化的简单方法,可以帮助识别趋势、整理数量并衡量其活动的影响。 本篇文章将分享10个仪表板使用技巧,有效利用这个开箱即用的核心Salesforce功能,可以帮助管理员和用户事半功倍。 01 提高仪表板的…

二苯并环辛炔DBCO-PEG3-OTs,二苯并环辛炔-三聚乙二醇-对甲苯磺酰酯

●外观以及性质: DBCO(二苯并环辛炔)是一种环炔烃,可以通过在水溶液中通过应变促进的1,3-偶极环加成反应与叠氮化物反应,这种生物正交反应也称为无铜点击反应。DBCO 点击化学可以在水性缓冲液中运行,也可以…

高通Ride软件开发包使用指南(3)

高通Ride软件开发包使用指南(3)4准备软件下载平台4.1 CDT供应4.1.1使用QFIL的CDT编程4.1.2使用fastboot进行CDT编程4.1.3 CDT验证4准备软件下载平台 所有Snapdragon Ride参考平台都应已完成通用闪存(UFS)编程和配置数据表&#x…

spring 事务传播行为以及失效原因

今天在查看以前写的代码时,看到了事务的使用,感觉自己对这一块并不是特别清晰,所以就系统的学习了一下。在学习过程中发现很多地方自己以前理解的还是有点不对,所以记录一下学习笔记,希望帮助到大家。 一、事务传播行…

随机接入流程 - 2-Step RA

Overview 在LTE和R15 NR中,终端以及基站采用的接入技术均为四步随机接入(4-Step Random Access)技术,即终端和基站之间需要经过5次信息交互(这里我们所说是的基于竞争的随机接入过程,对于非竞争随机接入过程只需要3次信息交互)才能完成随机接…

m基于FPGA的数字下变频verilog设计

目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 整个数字下变频的基本结构如下所示 NCO使用CORDIC算法,CIC采用h结构的CIC滤波器,HBF采用复用结构的半带滤波器,而FIR则采用DA算法结构。 这里,我们…

华硕编程竞赛11月JAVA专场 B题召唤精灵 题解

作者主页:Designer 小郑 作者简介:软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲…

ATtiny13与Proteus仿真-GPIO与点亮LED仿真

GPIO与点亮LED仿真 1、GPIO介绍 ATtiny13的端口具有(Read-Modify-Write,读取-更改-写入)基础功能。这就意味着,可以通过 SBI 和 CBI 指令更改一个端口引脚的方向,而不会影响其他端口方向。同时,如果更改一个端口的值,也不会影响其他的端口的值。 ATtiny13的端口输出缓冲…

Spring boot前后端分离项目使用docker-compose部署在Ubuntu上 以及内网穿透,外网访问项目

docker-compose.yml部署vue Springboot前后端分离项目 以及内网穿透,外网访问项目一、windows上部署前后端项目,测试1、前端Vue打包,放到nginx的html中2、nginx代理转发后端端口:4、后端Springboot项目使用Maven打包二、Linux上使…

-aop-

文章目录一.动态代理实现invocationHandler二.AOP概述环绕通知Pointcut定义切入点一.动态代理实现invocationHandler 动态代理:可以在程序的执行过程中,创建代理对象。 通过代理对象执行方法,给目标类的方法增加额外的功能(功能增…

Filebeat采集数据到ES保证数据不重复

一.背景 业务需求使然,API接口负责收集用户传递上来的json数据,为了保证接口性能和数据的可靠性。我们没有直接拿到数据,然后存储到mysql或者kafka,而是直接使用最稳妥的方式,写文件。之后采用filebeat对数据文件进行采…

8_1、Java基本语法之多线程基本概念

一、涉及到多线程的基本概念 1、程序(programm) 概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一 段静态的代码,静态对象。 2、进程(process) 概念:是程序的一次执行过程,或是正在运行的一个程…

Cy7 Tyramide, Tyramide-Cy7,花青素Cy7 酪酰胺化学试剂供应

一:产品描述 1、名称 英文:Cyanine7 Tyramide,Cy7 Tyramide,Tyramide-Cy7 中文:花青素Cy7 酪酰胺 2、CAS编号:N/A 3、所属分类:Cyanine 4、分子量:802.01 5、分子式&#xff…

Docker学习6-Docker镜像commit操作案例

在上一篇中,我们知道了docker是基于联合文件系统的分层镜像。而且也知道了镜像是只读的,容器才是可以写的。那么,如果我们要修改镜像,修改之后,怎么提交呢?本文,凯哥将介绍,docker的…