图片显示用静态资源+相对路径 对比 用 base64,性能上有区别吗

2023-01-29 11:13:53 +08:00
 unt
图片 2k,base64 3k 。

页面上渲染 3000 个图片,性能上有差距吗。
3312 次点击
所在节点    程序员
25 条回复
for8ever
2023-01-29 11:19:50 +08:00
有区别,base64 可以减少 HTTP 请求,对于小图片用 base64 更好
loading
2023-01-29 11:25:37 +08:00
base64 就是要等 html 全部下载完才渲染(?)

我觉得你应该看看 雪碧图
opengps
2023-01-29 11:42:01 +08:00
网络连接数可能占用更少,但 cpu 占用会更多
matepi
2023-01-29 11:43:07 +08:00
浏览器也是能并发连接的啊
okakuyang
2023-01-29 11:54:44 +08:00
什么场景这么极端
641571835
2023-01-29 11:56:57 +08:00
@for8ever 如果是 http2 这个不是问题吧
uasier
2023-01-29 11:57:22 +08:00
合理操作应该是雪碧图
uasier
2023-01-29 11:58:00 +08:00
同时也可以看看是否需要懒加载
retrocode
2023-01-29 12:00:20 +08:00
网页的话还是建议图片形式, 好歹可以懒加载, 图片转 base64 后体积会变大, 你还是要等数据加载完才能渲染,而且更慢

转 base64 只适合散碎图片,如图标之类的, 整合成一个文件加快加载速度,

如果是本地页面的话, 你想骚套路也不是不可以,随便搞, 还能方便加密混淆
mxT52CRuqR6o5
2023-01-29 12:01:31 +08:00
3000 个图片传统方案是雪碧图 /fonticon ,对业务代码有一定入侵
churchill
2023-01-29 12:15:38 +08:00
看到 雪碧图 这个翻译忍不住要吐槽
zephyru
2023-01-29 12:23:00 +08:00
一个可视区内为例,3000 张一个可视区,用 base64 大概是,先等所有图片下载完再展示(我就当你是嵌在 html 里了)
相对路径则是先展示轮廓再展示,浏览器并发,不同浏览器不一样通常是 6 ~ 8 个,所以 3000 张同屏怎么也会有先后顺序
你要全部加载完哪个更快?主要看设备,通常来说,一个大文件会比 3000 个小文件快,取决于大小差异和实际使用的 http 协议,用 http3.0 的话,小文件估计会快一点,1.0 大文件会快一点。
个人建议,用相对路径,需要一次性展示的话自己控制图片的加载完再展示,而不是使用 base64 这样完全不可控。
一个可视区放不下的情况,比如滚动加载,就别 base64 了,没啥意义。
IvanLi127
2023-01-29 12:28:25 +08:00
3000 个图片。。要不 http/2.0 ?
Huelse
2023-01-29 13:20:00 +08:00
如果图片要更新的话不如懒加载,看那些壁纸站也是这么做的
unt
2023-01-29 13:39:55 +08:00
是 3000 张相同的图片,可以认为是图标, 我说的有歧义,骚瑞~
Morii
2023-01-29 13:58:11 +08:00
3000 是每次固定还是随机?
tigaDark
2023-01-29 15:52:35 +08:00
1.一个页面放下了 3000 个图片,也无法全部显示
tigaDark
2023-01-29 15:56:39 +08:00
2.静态资源+相对路径 用的是 http 获取图片
3.base64 则是用类似字符码? 直接显示在页面上
4.浏览器的 http 并发请求大概是 8-10 条
5.性能得看你的电脑配置,图片大小 综合看...
unt
2023-01-29 16:24:47 +08:00
@tigaDark #18 同一张图片只请求一次,只会有一个 http 请求,而且有缓存,实际渲染时不需要发 http
Alander
2023-01-29 16:41:12 +08:00
一个页面放得下 3000 个图片?如果放不下就懒加载随便怎么选;如果放得下 http1.1 就用雪碧图吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/911260

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX