加载和替换具有相同名称的图像 - 加载和缓存图像问题

时间:2010-07-17 15:29:04

标签: jquery setinterval

我正在尝试将来自服务器的图像(同名但总是新图像)加载到html页面 - 标记:#webCamStageImage。到目前为止,我可以加载图像,但浏览器没有向我显示新图像 - 我想这是一个缓存问题 - 因为当我打开Safari中的“禁用WebCore缓存”时,它可以工作。

继承我的代码:

setInterval(function()
{
  $("#webCamStageImage").attr({'src': "http://picture.jpg"});
}, 5000);

如何更改/ ddelte /刷新旧图像?

克里斯

2 个答案:

答案 0 :(得分:8)

尝试使用带有无意义查询字符串的网址:

setInterval(function()
{
  $("#webCamStageImage").attr({'src': "http://picture.jpg?foo=" + new Date().getTime()});
}, 5000);

浏览器将整个 URL视为可缓存实体的名称,因此通过执行此操作,您可以认为您要求服务器提供不同的内容(实际上您可能是这样)。服务器不会关注查询字符串(除非你不知道......)。

答案 1 :(得分:1)

尝试添加随机值以查询字符串值,以避免缓存:

var randNum = Math.floor(Math.random() 999 + 1);
setInterval(function()
{
  $("#webCamStageImage").attr({'src': "http://picture.jpg?rand=" + randNum});
}, 5000);