问题描述:
今天做我们网站的头像上传模块,遇到了个挺难受的问题。模块是这么设计的,我们在服务器上为每个用户只保存一张头像图片,而且图片的文件名是 {uid}.jpg 这样的,我想实现当用户上传一个头像的时候,就能在该页面即时刷新头像显示,这个简单,在img的src位置文件名这样写就行了:{uid}.jpg?id=Math.random();但是当用户下一次再打开该页面的时候,头像依然没有改变,显示的是缓存中的图片。恼火。
思路:
在上传成功后同时要更新浏览器对该图像文件的缓存。
解决办法:
我在该页面上使用了一个隐藏帧iframe,他的src指向头像图片。当上传成功以后,调用iframe的reload()方法,重新加载下这个图片就行了。
如:假设这个iframe的id是img_header,document.getElementById("img_header").contentDocument.location.reload();刷新页面看一看,是不是图片也更新了!