![]() | 1 for8ever 2023-01-29 11:19:50 +08:00 有区别,base64 可以减少 HTTP 请求,对于小图片用 base64 更好 |
![]() | 2 loading 2023-01-29 11:25:37 +08:00 base64 就是要等 html 全部下载完才渲染(?) 我觉得你应该看看 雪碧图 |
![]() | 3 opengps 2023-01-29 11:42:01 +08:00 网络连接数可能占用更少,但 cpu 占用会更多 |
4 matepi 2023-01-29 11:43:07 +08:00 浏览器也是能并发连接的啊 |
5 okakuyang 2023-01-29 11:54:44 +08:00 什么场景这么极端 |
![]() | 7 uasier 2023-01-29 11:57:22 +08:00 合理操作应该是雪碧图 |
![]() | 8 uasier 2023-01-29 11:58:00 +08:00 同时也可以看看是否需要懒加载 |
![]() | 9 cvooc 2023-01-29 12:00:20 +08:00 网页的话还是建议图片形式, 好歹可以懒加载, 图片转 base64 后体积会变大, 你还是要等数据加载完才能渲染,而且更慢 转 base64 只适合散碎图片,如图标之类的, 整合成一个文件加快加载速度, 如果是本地页面的话, 你想骚套路也不是不可以,随便搞, 还能方便加密混淆 |
10 mxT52CRuqR6o5 2023-01-29 12:01:31 +08:00 3000 个图片传统方案是雪碧图 /fonticon ,对业务代码有一定入侵 |
![]() | 11 churchill 2023-01-29 12:15:38 +08:00 看到 雪碧图 这个翻译忍不住要吐槽 |
![]() | 12 zephyru 2023-01-29 12:23:00 +08:00 一个可视区内为例,3000 张一个可视区,用 base64 大概是,先等所有图片下载完再展示(我就当你是嵌在 html 里了) 相对路径则是先展示轮廓再展示,浏览器并发,不同浏览器不一样通常是 6 ~ 8 个,所以 3000 张同屏怎么也会有先后顺序 你要全部加载完哪个更快?主要看设备,通常来说,一个大文件会比 3000 个小文件快,取决于大小差异和实际使用的 http 协议,用 http3.0 的话,小文件估计会快一点,1.0 大文件会快一点。 个人建议,用相对路径,需要一次性展示的话自己控制图片的加载完再展示,而不是使用 base64 这样完全不可控。 一个可视区放不下的情况,比如滚动加载,就别 base64 了,没啥意义。 |
![]() | 13 IvanLi127 2023-01-29 12:28:25 +08:00 via Android 3000 个图片。。要不 http/2.0 ? |
14 Huelse 2023-01-29 13:20:00 +08:00 如果图片要更新的话不如懒加载,看那些壁纸站也是这么做的 |
![]() | 15 unt OP 是 3000 张相同的图片,可以认为是图标, 我说的有歧义,骚瑞~ |
16 28Sv0ngQfIE7Yloe 2023-01-29 13:58:11 +08:00 3000 是每次固定还是随机? |
17 tigaDark 2023-01-29 15:52:35 +08:00 1.一个页面放下了 3000 个图片,也无法全部显示 |
18 tigaDark 2023-01-29 15:56:39 +08:00 2.静态资源+相对路径 用的是 http 获取图片 3.base64 则是用类似字符码? 直接显示在页面上 4.浏览器的 http 并发请求大概是 8-10 条 5.性能得看你的电脑配置,图片大小 综合看... |
![]() | 20 Alander 2023-01-29 16:41:12 +08:00 一个页面放得下 3000 个图片?如果放不下就懒加载随便怎么选;如果放得下 http1.1 就用雪碧图吧 |
![]() | 21 laqow 2023-01-29 18:52:14 +08:00 感觉看引擎和硬件渲染。另外渲染 css 背景,img 标签,或者 appendChild Image 对象的性能应该都不同 |
![]() | 22 daoqiongsi1101 2023-01-29 18:55:10 +08:00 @for8ever 用 http/2 协议就没你说的这个问题 |
![]() | 23 cleveryun 2023-01-29 21:05:40 +08:00 via Android @unt 3000 个相同图片的话,那必然是用 http 地址比 base64 好,而且好太多了,3000 个一样的 http 地址,你只为图片浪费了 2k 带宽,3000 个 base64 你需要 3k x 3000 =9000k 带宽。你审查下用 base64 的 img 标签,内容是直接塞进 html 里的,有几个就是几倍的大小。 |
![]() | 24 rb6221 2023-01-29 21:40:26 +08:00 肯定不是一个屏幕几千张啊。用懒加载就行了,一个屏幕最多也就一百张左右 |
25 superares 2023-01-29 23:08:45 +08:00 via iPhone 可以看下 Google 的图片搜索,前面两排左右的结果是 base64 ,后面的就是图片地址了。base64 就是为了快速出图片,但是不适合大量图片 |