Hover预加载时如何避免重复请求和资源浪费?
我在给产品页的商品缩略图做Hover预加载时遇到了问题,当鼠标快速移进移出多个图片时,控制台显示重复请求了同一个资源。我用了下面的代码,但发现即使移开后又移回来,还是会触发新的请求,这样会不会导致带宽浪费?
document.querySelectorAll('.thumbnail').forEach(item => {
item.addEventListener('mouseover', () => {
const url = item.dataset.preview;
const img = new Image();
img.src = url; // 这里每次hover都创建新Image对象
});
});
我尝试过在mouseout时设置img.src为空,但发现这样预加载反而失效了。有没有更好的方式既能提前加载hover目标资源,又不会在频繁操作时重复请求?
UX-文斌
Lv1
试试这个,用个缓存对象记录已加载的URL,避免重复请求:
点赞
4
2026-02-09 13:01