预加载图片到底该用 link 还是 img 标签?
我在做首页性能优化,想提前加载几张关键图片,但搞不清该用 <link rel="preload"> 还是直接 new Image()?
试过在 head 里加 preload,但 DevTools 里看到这些图片还是等到页面解析到 img 标签才真正请求,感觉没生效。是不是我写法有问题?
<link rel="preload" as="image" href="/hero-banner.jpg" rel="external nofollow" >
<img src="/hero-banner.jpg" alt="banner">
link preload确实能提前发起请求,但有个坑要注意:如果你在里写了preload,后面
你这种情况,建议检查下路径是否完全匹配。另外preload需要服务器正确响应HTTP头里的Link预加载提示,如果服务器配置不对也可能无效。
如果想简单点,直接用new Image()其实也挺好:
这个方法更稳妥,虽然不如preload那么“标准”,但至少不会出现资源不匹配的问题。
说实话,我之前为了preload折腾了好久,最后发现简单粗暴的方法反而更靠谱。开发这事儿啊,有时候太追求规范反而容易踩坑。