我在下面的代码中看到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>
答案 0 :(得分: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>
答案 1 :(得分:0)
将setInterval
更改为setTimeout
。您当前的代码将设置一个新的间隔,以便在单击时每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");
}