是否可以使用javascript重新加载已缓存的特定图像?
在我的网站上,用户可以上传新的头像。完成此操作后,我希望浏览器重新下载新的头像,以便用户可以看到更改已完成。
目前,我这样做:
$('profilePic').src = 'flash/userImage.ashx?id=12345677&type=avatar&t=' + new Date().getTime()
userImage.ashx根据id和查询类型返回图像。它不使用't'参数 - 这只是因为url不同,所以图像重新加载。
这可以在用户上传新头像的页面上正常工作,但在网站的其他位置仍会使用缓存的图片。
我可以关闭用户头像的缓存,但我真的不想这样做。是否可以强制重新加载特定的缓存图像?
答案 0 :(得分:3)
也许使用ETag进行缓存是一种解决方案: http://en.wikipedia.org/wiki/HTTP_ETag
当不同的用户在头像更新后加载页面时,他发送的带有图像请求的ETag与服务器上生成的ETag不同,因此应该导致200响应而不是304,所以图像重装。