javascript循环会让我的页面最终被卡住吗?

时间:2014-05-03 15:11:49

标签: javascript loops

我有这个功能:

<script language="javascript">
function live(){
    var d = $live;
    var elm = document.getElementById("live");
    if(d==1){
        elm.style.display = 'block';
    } else{
        elm.style.display = 'none';
    }     
}
</script>

setInterval(function(){live();},10000);

我只关心我的页面在浏览器上打开一段时间后被卡住或者导致我的用户浏览器停止响应或类似的事情。使用这样的循环有多安全?

谷歌或Facebook用于在他们的页面上实时显示新的通知警报吗?这似乎很顺利。

谢谢。

2 个答案:

答案 0 :(得分:1)

这不是传统意义上的循环,它实际上只是一个定期调用的函数,所以你在这里很清楚。请注意,每次执行时都不会增加内存使用量,因为这很可能会杀死用户的浏览器。

此外,setInterval需要我在脚本标记中,否则它将显示在您的页面上。

答案 1 :(得分:0)

使用setInterval是在网站上显示通知的常见做法。它不会挂起您的页面,但必须在不再需要时清除间隔。假设您已经显示了通知,那么最好保留setInterval的引用,以便以后清除它。

var ref = setInterval(fn, 100);
clearInterval(ref);