Javascript-刷新-内存泄漏
我在下面的代码中看到Firefox和IE内存严重泄漏。公平地说,这很可能是我糟糕的实现,它需要改变,以允许Firefox和其他浏览器进行垃圾收集 有没有人对如何调整代码以允许更有效地刷新页面有什么建议Javascript-刷新-内存泄漏,javascript,Javascript,我在下面的代码中看到Firefox和IE内存严重泄漏。公平地说,这很可能是我糟糕的实现,它需要改变,以允许Firefox和其他浏览器进行垃圾收集 有没有人对如何调整代码以允许更有效地刷新页面有什么建议 <input type="checkbox" onclick="sel1()" id="AutoRefresh"> <script type="text/javascript"> function sel1(){ var ref = documen
<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>
我想这样会更好。 将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");
}
不要检查ref==true,ref应该已经是一个布尔值,因此,true或false,所以使用:ifref。另外,.click似乎不是元素上的函数,或者我的控制台是这么说的。不确定,但这可能会有帮助:嗨,谢谢。这似乎无法刷新页面。我不确定这个例子是否遗漏了什么,这取决于你在getdata方法中写了什么。您可以使用ajax刷新数据字段,也可以只刷新页面。我想您想使用ajax,所以我写了这段代码。您好,谢谢。这会一次一点地提升Firefox的内存。这可能是Firefox本身的问题。但是我有一个很好的印象,在这之前代码是没有效率的。
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");
}