0

在整个周末都打开浏览器窗口后,我今天早上带着一个软管的 IE 来到办公室。我正在做一个每 30 秒更新一次的“统计”仪表板栏。

返回是一个 html 字符串,作为一个完整的 xcontents

我将它附加到 DOM,在我的“真实”div #ajaxreturn 之后,它实际上包含了其他东西。我希望它出现在它之后。

如果存在,请将其从 dom 中删除。将结果附加到 dom。

$(function(){
function getAD() {
    var request = $.ajax({  
        url: "getdashboard/"
        ,  type: "GET"              
        ,  cache: false
        ,  dataType: "html"
    });
    request.done(function(msg) {
        if($('#adminbar').length){
            $('#adminbar').remove();
        }
        $('#ajaxreturn').after(msg);
    });
}

//INIT AND RELOAD INTERVALS

//get DashBoard
getAD();
//and then look for updates every 30 seconds
var gb = setInterval(getAD,3000);
});

我的假设是这会破坏或将其发送到垃圾收集器。但似乎并非如此。我每 30 秒向我的 IE 会话添加大约 15KB。

除了 remove() 之外,我还应该使用其他东西吗?

4

1 回答 1

0

据我所知,jQuery 缓存所有内容并将其放入 $.cache

您需要禁用缓存,使用:

$.ajaxSetup({cache:false});

jQuery.cache = {}

Sizzle.selectors.cacheLength $.expr.cacheLength = 1 https://github.com/jquery/sizzle/wiki/Sizzle-Documentation#sizzleselectorscachelength--number

于 2013-12-01T16:28:53.280 回答