使用javascript重新加载缓存的图像

时间:2011-10-25 14:32:40

标签: javascript mootools

是否可以使用javascript重新加载已缓存的特定图像?

在我的网站上,用户可以上传新的头像。完成此操作后,我希望浏览器重新下载新的头像,以便用户可以看到更改已完成。

目前,我这样做:

$('profilePic').src = 'flash/userImage.ashx?id=12345677&type=avatar&t=' + new Date().getTime()

userImage.ashx根据id和查询类型返回图像。它不使用't'参数 - 这只是因为url不同,所以图像重新加载。

这可以在用户上传新头像的页面上正常工作,但在网站的其他位置仍会使用缓存的图片。

我可以关闭用户头像的缓存,但我真的不想这样做。是否可以强制重新加载特定的缓存图像?

1 个答案:

答案 0 :(得分:3)

也许使用ETag进行缓存是一种解决方案: http://en.wikipedia.org/wiki/HTTP_ETag

当不同的用户在头像更新后加载页面时,他发送的带有图像请求的ETag与服务器上生成的ETag不同,因此应该导致200响应而不是304,所以图像重装。