我正在开发一个struts2 Web应用程序。当按钮单击发生时,我将对struts操作进行$ getJSON调用并对java类执行一些操作。
$.getJSON('uponClickingBtn',function(data){
if(data.status=="TRUE"){
$('#test').attr('src','image/greenzx.png');
}
else{
$('#test').attr('src','image/redzx.png');
}
});
java类将返回一个String,“TRUE
”/“FALSE
”。如果返回值为true,则会显示greenzx.png图像,否则将显示redzx.png
图像。
此过程首次正常运行。但是当再次单击相同的按钮时,不会发生对Java动作类的调用,浏览器只返回最新的图像。
说,如果是greenz.png
,它会立即再次greenz.png
。
我的浏览器表现得好像会记住会话中的值,这是不受欢迎的。这与浏览器设置有什么关系,或者我将不得不更改我的代码?
PS:我要求使用IE7
/ IE8
作为浏览器。它适用于Firefox
。 IE
是我遇到此问题的地方。
答案 0 :(得分:6)
原因是浏览器缓存了您操作的响应。
no-cache
。$getJSON
时,在网址中添加一个随机参数,例如'&time=' + Math.random()
(每次都必须是唯一的值)。使用$.ajax
选项cache:false
可以自动实现第二个选项。
答案 1 :(得分:3)
浏览器看起来像是返回缓存数据而不是加载新数据。为避免这种情况,您可以在数据网址中添加一些参数 即:将'?time ='+ new Date()。getTime()添加到数据网址的末尾。