我有问题。我仍然可以看到,在将此代码放在我的jsp上后,我的缓存仍在增加。
<% response.setHeader("Cache-Control", "no-cache"); %>
并在我的javascript / jquery中驻留在同一个jsp上:
function waitForMsg() {
$.ajax({
type: "GET",
url : contextPath + "/groupChat",
async: true,
cache: false,
success: function (data) {
$("#divChatMessageTable").load(contextPath + "/groupChat/message");
setTimeout(waitForMsg, 1000);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
setTimeout(waitForMsg, 15000);
}
});
if ($("#divChatMessageTable").height() > tableHeight) {
scrollToBottomChat ();
tableHeight = $("#divChatMessageTable").height();
}
}
我在jquery中设置了cache:false
。
请帮忙。
答案 0 :(得分:1)
您可以摆脱初始的ajax调用,只需保持load
调用(也是ajax)。下面的一个区别是为load
方法添加成功回调,因此在插入新内容之前,您不会测试新内容的高度
function waitForMsg() {
$("#divChatMessageTable").load(contextPath + "/groupChat/message", function({
/* new content now exists*/
if($("#divChatMessageTable").height() > tableHeight) {
scrollToBottomChat();
tableHeight = $("#divChatMessageTable").height();
}
setTimeout(waitForMsg, 1000);
});
}
的API引用
答案 1 :(得分:0)
我通过添加no-store, must-revalidate
解决了这个问题。
代码:
<% response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); %>