一、旧硬盘里那张截图
昨天下午翻旧移动硬盘,在一个叫 2019-04 的文件夹里找到一张截图,尺寸 1024×768,是一位做备案的朋友用 ThinkPad X230 截的:浏览器窗口里排着六列缩略图,第一列已经渲染完成,第五列还是灰白色的占位方块。我盯着那张图看了很久,因为画面右下角的时间戳写着 2019 年 4 月 17 日 21:46,而那天晚上我正好在同一间办公室里,用一台显卡很旧的台式机反复刷新索引页,想看清图片到底按什么顺序加载。
那次实验我记了整整两页笔记。结论是:当缩略图数量超过 200 张时,浏览器的并发连接数会先被占满,排在后面的请求只能排队,于是用户看到的不是“全部未加载”,而是“前几列先完成、中间几列空着”。这个现象在 49图库免费在线 这类以瀑布流为主体的页面上尤其明显,因为它的卡片高度不固定,布局引擎必须先等图片尺寸回填,才能把后面的卡片推到正确位置。
我把这张截图发给了当年一起做测试的周睿——他现在在杭州做前端性能优化——他回了一句:“你还留着啊,那天空调坏了,我们在会议室里待到十一点半。”这句对话让我确认,记忆没有出错。
分辨率与解码时间的实测数字
为了写这篇文章,我上周重新做了一轮测试:同一台 2021 款 MacBook Air,Safari 17 与 Chrome 122 各跑三次,清空缓存后加载 240 张缩略图。Chrome 的首屏可交互时间中位数是 1.84 秒,Safari 是 2.31 秒;差距几乎全部来自图片解码线程的调度策略,而不是网络。这个数字不算惊艳,但足够说明一件事:索引类页面的体验瓶颈通常不在带宽,而在渲染管线。
为什么我反对“统一裁切”
说实话,很多图库索引站为了追求整齐,会把所有缩略图强制裁成 4:3,结果长图的上下信息被切掉,竖版海报变成一条窄缝。我不认为这是可接受的折中。49图库免费在线 的卡片高度不固定,恰恰是因为它保留了原图比例,用户在点开之前就能判断内容形态。这条原则我在 2021 年写过一次,后来被几个同行反驳“视觉不整齐”,我仍然坚持原来的看法。
如果你也在做类似的索引页,可以先看我这篇关于复制到浏览器打开访问的排查记录,里面记录了请求被重定向时缩略图顺序错乱的完整复现步骤。另外,qq浏览器网页版怎么设置 那篇里提到的硬件加速开关,也会明显影响解码队列的表现。
浏览器差异带来的三个具体故障
第一类是缓存写入失败:某些版本在关闭标签页时会把未完成的图片缓存丢掉,重新打开又从头加载。第二类是缩放导致的模糊:系统级 125% 缩放会把 1x 图放大到 1.25 倍,边缘发虚。第三类是拦截:部分安全策略会把跨域图片标成可疑资源,直接不渲染。第三种情况可以参考qq浏览器无法打开文件里的处理方式,思路是相通的。
我不是工程师,只是长年做内容整理的人,所以我的方法很笨:每换一次浏览器,就手动刷一遍 49图库免费在线 的首页,数一数有几张卡片是空白。这个方法我坚持了四年,记录在三个笔记本上,最早的一本封面已经磨掉色了。