预加载图片资源到底该用 link preload 还是 img hidden?

一倩云 阅读 2

我在做一个图片画廊页面,首屏要快速展示缩略图,但高清大图需要预加载。试过用 <link rel="preload">,也试过用隐藏的 <img> 标签,但不确定哪种方式更靠谱,浏览器缓存行为好像也不太一样?

比如我这样写 preload:

<link rel="preload" as="image" href="/assets/photo-large.jpg" rel="external nofollow" >

但有时候发现图片还是重新请求了,是不是我用错了?有没有最佳实践?

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
桠豪
桠豪 Lv1
preload和hidden img各有优缺点。preload更直接,但要注意跨域和缓存问题。如果遇到重新请求的问题,多半是CORS没配置好。

试试这个写法:
<link rel="preload" as="image" href="/assets/photo-large.jpg" crossorigin>


记得服务器要设置正确的Access-Control-Allow-Origin头。

要是还是有问题,考虑用隐藏的img标签:
<img src="/assets/photo-large.jpg" style="display:none;">


其实两种方式我都用过,preload在现代浏览器表现更好些,但兼容性还得测。别想太多,代码放这了,自己多测几个浏览器吧,累了就休息会儿再搞。
点赞
2026-03-31 00:00