1

我们有这个 Javascript 函数用于重复刷新页面的一部分:

        function refreshScreen() {
            var href = document.location.href;
            var idx = href.indexOf('?');
            $jQ.get(href.substring(0, (idx > 0 ? idx : href.length)) + '?random=' + Math.floor((Math.random()*1000000000)+1), function(data) {
                $jQ('#mainTable').replaceWith($jQ(data).find('#mainTable'));
            });
        }
        $jQ(document).ready(function() {
            if ($jQ('#mainTable').is('.refresh')) {
                window.setInterval(refreshScreen, 10000);
            }
        });

它适用于所有浏览器,但在 IE8 中会导致内存泄漏(cca 30MB/min)。我们已经尝试过 jQuery 1.8.3。和 1.10.1 但结果相同。提前感谢您的回答。

4

1 回答 1

0

尝试

....
$jQ.get(href.substring(0, (idx > 0 ? idx : href.length)) + '?random=' + Math.floor((Math.random()*1000000000)+1),  replaceWithData });
....

function replaceWithData(data){
 $jQ('#mainTable').replaceWith($jQ(data).find('#mainTable'));
}

对于我的一个项目,我删除了“闭包”,因为导致内存泄漏(循环引用)。

请参阅: http: //www.codeproject.com/Articles/12231/Memory-Leakage-in-Internet-Explorer-revisited

于 2013-06-27T09:35:19.493 回答