2011-04-20 89 views
3

我遇到了一些Firefox和ie缓存的问题,在我的网站上用户可以使用表单进行查询,并且此查询返回一张图片,但根据所选的单选按钮,它会返回一个不同的图片,它的工作方式就像在Chrome上一样,但在IE和Firefox中,总是会返回相同的图像,只有当我重新打开浏览器时才会更改,您能否告诉我一些关于如何制作这项工作?Firefox和IE图像缓存

感谢大家,我每次发出ajax调用时都会通过放置唯一的url来解决我的问题。

<?php $date = date("H:i:s"); 
echo '<a href="web/WEB-INF/classes/lineChart.php?id='.$date.'" title="Chart" class="chart">'; echo '<img src="web/WEB-INF/classes/lineChart.php?id='.$date.'" alt="">' ?></a> 
+0

你能提供一些你的代码吗? – 2011-04-20 05:20:36

回答

2

不确定您正在使用的语言进行编码,但无论我确信该策略将全面工作。我传递查询字符串中的任意值,例如GUID或日期时间戳。这将强制一个新的负载,因为该URL将是唯一的。

我使用ASP.NET MVC,然后在我的路由中设置一个可选参数,控制器方法将忽略此参数。然后,我通过JavaScript设置我的网址:

d = new Date(); 
$('.thumbnail').attr('src', $('.thumbnail').attr('src') + d.getTime()); 

我需要的解决方案是独一无二的,所以这可能是不相似的,你试图解决什么。但是,它应该得到重点。

+0

感谢您的支持,这让我走向了正确的方向。 – 2011-04-20 06:26:21

0

做私人浏览在Firefox中看到,如果图像是变化成功和问题是与高速缓存存储器或指定一个唯一的可能是解决方案的代码

+0

使用隐私浏览没有任何好处。 – 2011-04-20 05:40:06

+0

意味着问题是代码不是浏览器 – 2011-04-20 05:41:35

+0

,但与铬它的作品。我认为,因为这些文件具有相同的名称,所以浏览器仍然认为它们是相同的内容。 – 2011-04-20 05:48:45

0

,但你必须注意的字符串的长度可以保持现在,您可以在代码开始时使用此选项

$.ajaxSetup({ cache: false }); 

这将禁用缓存。