昨晚碰到的一个bug
今晚我碰到一个bug。在刷新页面的时候浏览器所占用的内存在不断地升高,chrome进程的CPU的占用率也在不断维持在50左右,不知道是什么原因
找了好久,凝视了大部分代码一部分慢慢地排除。最终发现是javascript出现的错误。细致看来看去都不知道是什么原因,写了一个主要的js代码来不断地循环。最后最终发现因为调用所用的函数的问题
setTimeout("showTime()", 1000);
setInterval("showTime()",1000);
以上这两个函数都是每隔1秒调用一次。可是以下的这个就会不断地积攒消耗内存,而上面的则占用的内存资源是不变的。
找了好久,凝视了大部分代码一部分慢慢地排除。最终发现是javascript出现的错误。细致看来看去都不知道是什么原因,写了一个主要的js代码来不断地循环。最后最终发现因为调用所用的函数的问题
setTimeout("showTime()", 1000);
setInterval("showTime()",1000);
以上这两个函数都是每隔1秒调用一次。可是以下的这个就会不断地积攒消耗内存,而上面的则占用的内存资源是不变的。
setTimeout()这个函数仅仅是运行了一次code,而setInterval()则会出现不停地调用函数,直到clearInterval()或窗体被关闭才停止。这就造成了消耗大量的内存资源。
由于我不懂js。所以理解不是非常深
<script language="javascript"> function showTime(){ var date=new Date(); var hours=date.getHours(); var minutes=date.getMinutes(); var seconds=date.getSeconds(); if(hours.toString().length == 1){ hours='0'+hours; } if(minutes.toString().length == 1){ minutes='0'+minutes; } if(seconds.toString().length == 1){ seconds='0'+seconds; } var formatTime=hours+":"+minutes+":"+seconds; setTimeout("showTime()", 1000); /* setInterval("showTime()",1000);*/ document.getElementById("time").innerHTML=formatTime; } </script>