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:falsejqueryに設定しました。

ところで、私はFirefoxを使用しています。

助けてください。

4

2 に答える 2

1

おそらく、最初の ajax 呼び出しを取り除き、呼び出しを維持することができloadます (これも ajax です)。以下の 1 つの違いは、成功のコールバックを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 に答える