当前位置: 首页 > article >正文

前端文件优化

一、图片优化

计算图片大小

对于一张100*100像素的图片来说,图像上有 10000 个像素点,如果每个像素的值是 RGBA 存储的话,那么也就是说每个像素有 4 个通道,每个通道 1 个字节(8 位 = 1个字 节),所以该图⽚⼤小⼤概为 39KB(10000 * 1 * 4 / 1024)。

但是在实际项⽬中,⼀张图片可能并不需要使⽤那么多颜色去显示,我们可以通过减少每个像素的调色板来相应缩小图⽚的⼤小。

优化图片思路

  • 减少像素点
  • 减少像素的能够显示的颜色

二、图片加载优化

  1. 不⽤图⽚。很多时候会使⽤到很多修饰类,其实这类修饰图⽚完全可以⽤ CSS 去代替。
  2. 对于移动端来说,屏幕宽度就那么点,完全没有必要去加载原图浪费带宽。⼀般图⽚都⽤ CDN 加载,可以计算出适配屏幕的宽度,然后去请求相应裁剪好的图⽚。
  3. ⼩图使⽤ base64 格式
  4. 将多个图标⽂件整合到⼀张图⽚中(雪碧图)
  5. 选择正确的图片格式:

  •    对于能够显示 WebP 格式的浏览器尽量使⽤ WebP 格式。因为 WebP 格式具有更好 的图像数据压缩算法,能带来更⼩的图⽚体积,⽽且拥有⾁眼识别⽆差异的图像质 量,缺点就是兼容性并不好
  • ⼩图使⽤ PNG,其实对于⼤部分图标这类图⽚,完全可以使⽤ SVG 代替
  • 照⽚使⽤ JPEG

三、其他文件优化

  • CSS ⽂件放在 head 中
  • 服务端开启⽂件压缩功能
  • 将 script 标签放在 body 底部,因为 JS ⽂件执⾏会阻塞渲染。当然也可以把 script 标签放在任意位置然后加上 defer ,表示该⽂件会并⾏下载,但是会放到 HTML 解析完成后顺序执⾏。对于没有任何依赖的 JS ⽂件可以加上 async ,表示加载 和渲染后续⽂档元素的过程将和 JS ⽂件的加载与执⾏并⾏⽆序进⾏。
  • 执⾏ JS 代码过⻓会卡住渲染,对于需要很多时间计算的代码可以考虑使⽤ Webworker 。 Webworker 可以让我们另开⼀个线程执⾏脚本⽽不影响渲染。

四、CDN

静态资源尽量使⽤ CDN 加载,由于浏览器对于单个域名有并发请求上限,可以考虑使⽤多个 CDN 域名。对于 CDN 加载静态资源需要注意 CDN 域名要与主站不同,否则每次请求都会带上主站的 Cookie。


http://www.kler.cn/a/397033.html

相关文章:

  • 已解决:spark代码中sqlContext.createDataframe空指针异常
  • C++map和set(二)
  • Linux运维常用命令
  • Docker+Django项目部署-从Linux+Windows实战
  • 【优选算法 — 滑动窗口】水果成篮 找到字符串中所有字母异位词
  • linux逻辑卷练习
  • Linux中虚拟内存详解
  • Java项目实战II基于微信小程序的个人行政复议在线预约系统微信小程序(开发文档+数据库+源码)
  • 报错 No available slot found for the embedding model
  • 中科蓝讯修改蓝牙名字:【图文讲解】
  • 童年的快乐,矫平机为玩具打造安全品质
  • Vue和Vue-Element-Admin(十四):vue3.x与vue2区别分析
  • Linux(CentOS)安装达梦数据库 dm8
  • 期末考核-机器学习-期末考核
  • 将 SQL 数据库连接到云:PostgreSQL、MySQL、SQLite 和云集成说明
  • C++ 多线程std::thread以及条件变量和互斥量的使用
  • LeetCode-215.数组中的第K个最大元素
  • 云原生之运维监控实践-使用Prometheus与Grafana实现对Nginx和Nacos服务的监测
  • 十九:Spring Boot 依赖(4)-- spring-boot-starter-security依赖详解
  • 【DM系列】详解 DM 字符串大小写敏感
  • ldconfig 和 LD_LIBRARY_PATH 区别
  • 虎扑APP数据采集:JavaScript与AJAX的结合使用
  • QT使用libssh2库实现sftp文件传输
  • C语言和C++的常量概念与区别分析
  • HarmonyOS SDK下的实践与探索
  • 小U的相似字符串 | 模拟