0

我有个问题。将这些代码放在我的 jsp 上后,我仍然可以看到我的缓存仍在增加。

<% response.setHeader("Cache-Control", "no-cache"); %>

并在我驻留在同一个 jsp 上的 javascript/jquery 中:

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();
    }
}

我已经cache:false在jquery中设置了。

顺便说一句,我正在使用 Firefox。

请帮忙。

4

2 回答 2

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);    
    });


}

http://api.jquery.com/load/的 API 参考load

于 2012-11-12T02:54:57.930 回答
0

我已经通过添加解决了这个问题no-store, must-revalidate

编码:

<% response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); %>
于 2012-11-12T02:47:54.193 回答