Java:Ajax的内容也会被缓存吗?
2014-02-27 来自:就这样吧 4 人回应
<script type="text/javascript">
$(document).ready(function() {
$("#pb1").progressBar();
});
function ajax() {
$.ajax({
type : 'GET',
url : "servlet/Test",
dataType : 'text',
async : true,
success : function(response) {
alert(response);
$("#pb1").progressBar(response);
},
error : function(xhr, r, e) {
alert(xhr + "," + r + "," + e);
}
});
}
</script>

通过ajax获取后台返回的代码

    public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out;
try {
out = response.getWriter();
out.write("75");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

后台是一个简单的Servlet的doGet方法

现在我部署项目,启动tomcat,第一次请求时正常,返回的75,此时我将75改成40,然后再次请求,还是返回的75...然后我在想这东西是不是会被浏览器缓存呢?=。=于是我从Chrome换成了Firefox,还是返回75,真是活见鬼了....Ajax会一直返回第一次返回的值吗?

2014-03-01 来自:Olive

你确定你修改了数字之后有重启服务?没有重启服务,class还是之前的class 啊你又不是jsp会自动重新编译的

2014-02-28 来自:我是叔,你是谁

我每次请求连接的时候 都加一个随机数的参数,已经成习惯了

2014-02-28 来自:游侠

刨去 代码/部署错误, 是有可能的.

你直接在浏览器里,
http://localhost/servlet/Test?abc=1
http://localhost/servlet/Test?abc=2
这么试一下

2014-02-28 来自:养什么都死

一个简单的方法是加一个参数(例如当前时间),让每次请求的URI不同,浏览器就不会缓存,只需要改客户端,不用改服务器。

另外的方法就是服务器用一些header(Cache-Control: no-cache)告诉浏览器不要缓存,需要改服务器。

另外, Chrome的开发者工具可以很方便地清空和禁用缓存,调试就不用换到FF了。

您的回应

你还未登陆,不能回应!登陆