我正在开发一个 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 类将返回一个字符串,“TRUE
”/“FALSE
”。如果返回值为 true,则将显示 greenzx.png 图像,否则将显示 redzx.png
图像。
这个过程第一次运行得很好。但是,当再次单击同一按钮时,不会调用 Java 操作类,浏览器只会返回最新的图像。
假设它是 greenz.png
,那么它会立即再次变为 greenz.png
。
我的浏览器表现得好像它记住了 session 中的值,这是不希望的。这与浏览器设置有关还是我必须更改我的代码?
PS:我需要使用 IE7
/IE8
作为浏览器。它与 Firefox
配合良好。 IE
是我遇到此问题的地方。
最佳答案
原因是浏览器缓存了您的操作的响应。
- 选项 1 - 在 JAVA 操作中,您必须将 HTTP 缓存设置为
no-cache
。 - 选项 2 - 当您使用
$getJSON
时,向网址添加一个随机参数,例如'&time=' + Math.random()
(该值必须是唯一的)每次)。
第二个选项可以通过使用 $.ajax
和 cache:false
选项自动实现。
关于jquery - 浏览器会记住 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15382888/