1

我在下面的代码中看到 Firefox 和 IE 内存泄漏。公平地说,这很可能是我的糟糕实现,它需要改变,以允许 Firefox 和其他浏览器进行垃圾收集。

有没有人对如何调整代码以更有效地刷新页面有任何建议?

<input type="checkbox" onclick="sel1()" id="AutoRefresh">

<script type="text/javascript">
    function sel1(){
        var ref = document.getElementById('AutoRefresh').checked;
        if(ref == true) {
            setInterval(function(){
                document.getElementById('dataRefreshButton').click(); }, 2000);
            }
            window.alert("Auto refresh on");
        }
</script>
4

2 回答 2

0

我认为这会更好。

<script type="text/javascript">
    function getdata(){
        // get your data    
    }
    var intGetData;
    function sel1(){
        var ref = document.getElementById('AutoRefresh').checked;
        if(ref == true) {
            intGetData = setInterval(getdata, 2000);
            window.alert("Auto refresh on");
        }
        else{
            clearInterval(intGetData);  
            window.alert("Auto refresh off");           
        }
    }
</script>
于 2012-12-13T09:27:03.530 回答
0

更改setIntervalsetTimeout。您当前的代码将设置一个新的间隔,以便在单击时每 2 秒单击一次元素。如果单击一次,就会触发雪崩。

或者更好的是,你停止间隔:

var handle = null;
function sel1(){
    var ref = document.getElementById('AutoRefresh').checked;
    clearInterval(handle);
    if (ref)
        handle = setInterval(function(){
            document.getElementById('dataRefreshButton').click();
        }, 2000);
    window.alert("Auto refresh on");
}
于 2012-12-13T09:38:29.817 回答