@程序员,一文掌握 Web 应用中的图片优化技巧!(17)
1、让css文件的体积失去控制
当你把图片转换为Base64字符串之后,字符串的体积一般会比原图更大,一般会多出接近3成的大小,如果你一个页面中有20张平均大小为50kb的图片,转它们为Base64后,你的CSS文件将可能增大1.2mb的大小。这样将严重阻碍浏览器的关键渲染路径:
CSS文件本身就是渲染阻塞资源,浏览器首次加载时如果没有全部下载和解析完CSS内容就无法进行渲染树的构建,而Base64的嵌入则是雪上加霜,这将把原先浏览器可以进行优化的图片异步加载,变成首屏渲染的阻塞和延迟。
或许有人会说,Webpack的url-loader可以根据图片大小决定是否转为Base64(一般是小于10kb的图片),但你也应该担心如果页面中有100张小于10kb的图片时,会给CSS文件增加多少体积。
2、让浏览器的资源缓存策略功亏一篑
假设你的Base64URL会被你的应用多次复用,本来浏览器可以直接从本地缓存取出的图片,换成Base64URL,将造成应用中多个页面重复下载1.3倍大小的文本,假设一张图片是100kb大小,被你的应用使用了10次,那么造成的流量浪费将是:(100 * 1.3 * 10) - 100 = 1200kb。
推荐阅读
- 电子竞技|和平精英:掌握这些技巧,分分钟成车神
- edg战队|王者荣耀:一招鲜吃遍天?1个英雄想打5个位置?掌握这几个完全可以
- 网游|颠覆你认知的网游土豪,程序员加班为他改游戏,还送专属服务器
- 网易|永劫无间诡异宕机事件:网易机房过热,程序员竟然祭出了干冰?
- 法术|双城之战:羁绊、海克斯强化、装备一文看懂
- 甄姬|甄姬三技能的稳定性加强,掌握5个玩法技巧对上分有帮助
- 地下城与勇士|DNF:一次给3张传说卡片!讨伐战S级奖励技巧,掌握两个要领就行
- 热血传奇|热血传奇:提升幸运属性实在太难?只是你没掌握到方法
- 庄周|敌方边路选择庄周应该如何应对?选择这些对位英雄就能掌握先机!
- 手机游戏|LOL手游掌握了流量密码,社交玩法才是国内手游的主旋律?