You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历生成图片时重复显示同一图的问题求助(CodePen环境)

问题解决:循环生成图片重复,点击却能加载随机图

这跟CodePen没关系,是浏览器缓存在搞鬼。

原因分析

你循环创建图片时,浏览器会在极短时间内重复请求同一个图片地址。为了优化性能,浏览器直接复用了第一次请求返回的缓存结果,导致所有图片都显示同一张。而点击图片时,要么是在新标签页打开(浏览器会发起新请求,不使用缓存),要么触发了图片的重新加载逻辑,所以能拿到随机生成的新图。

解决方法

最简单的方式是给图片URL添加一个随机查询参数,让每个请求的URL看起来都不一样,这样浏览器就不会复用缓存了。修改你的代码如下:

const makeCard = (item) => {
  let card = document.createElement('div');
  card.classList.add('card', 'p-0');

  // card image
  let image = document.createElement('img');
  image.classList.add('card-img-top');
  // 添加随机时间戳作为查询参数,避免缓存
  image.src = `${item.imageUrl}?t=${Date.now()}`;
  console.log(image.src);
  card.appendChild(image);

  //... append to container
}

你也可以用Math.random()生成随机数当参数,效果是一样的:

image.src = `${item.imageUrl}?rand=${Math.random()}`;

内容的提问来源于stack exchange,提问作者Tyreeck M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:48:23