我开发了一个简单的叠加层来预览完整尺寸的图像。
我使用“cache:false”来阻止缓存。
代码很简单:
$.ajax({
url: urlFull,
cache: false,
success: function(html){
// display image
},
error: function(XMLHttpRequest, textStatus, errorThrown ) {
// display error
}
});
问题是 - 当图像文件被另一个替换时,无论设置了“cache:false”选项,浏览器都将始终显示旧文件。
此问题出现在Safari 5.0(6533.16)和Chrome 5.0.375.99。
下在Firefox 3.6.3中,它按预期工作(无缓存)
我无法控制服务器端逻辑,因为我预加载了常规文件,而没有在rails中调用控制器操作。
这个问题有解决方法吗?也许,我可以拦截Rails服务器的响应并调整一些标题? ...我在localhost下开发。
感谢。
答案 0 :(得分:1)
作为“脏”解决方案,请尝试在URL GET参数中添加时间戳。
答案 1 :(得分:0)
我尝试过使用
data: { timestamp: new Date().getTime() }.
它不起作用。
在我发现的Safari的开发人员面板中,请求字符串如下所示:
我添加了“_”参数:
data: {_: new Date().getTime()}
并获得以下网址:
“http://path_to_the_image.png?=1279789134612&=1279789245466”。
另外,我试过使用“timestamp”,“tstamp”,“t”;设置“0”,“9999999999999”......都没有结果...
似乎我无法控制时间戳,内部设置在$ .ajax ...