set Intervalによる性能問題


今日はフォーラムでset Intervalについて見ました.  セットTimeoutと同じ位置で不通な性能問題を示しています.
コードは以下の通りです
example.js
var montharray = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
document.write("");
function getthedate(){
    var date = new Date();
	
	var year = date.getYear()
    if (year < 1000) 
        year += 1900
	var month=date.getMonth();
	var day=date.getDate();
	var hours=date.getHours();
	var minutes=date.getMinutes();
  var second = date.getSeconds();
	
	var timevalue=" "+year+" ";
	
	timevalue+=montharray[month]+" ";
	timevalue+=((day<10)?("0"+day):day)+"   ";
	
	timevalue+=(hours<13)?("   "+hours):("   "+(hours-12))+" ";
	
	timevalue+=((minutes<10)?("0"+minutes):minutes)+" ";
	timevalue+=((second<10)?("0"+second):second)+" ";


    document.getElementById("clock").innerHTML = timevalue;
    
    window.setInterval("getthedate()", 1000);
}
getthedate();
   time.httm
 

    
        
        Untitled Document
    
    
		    
 運転結果は、CPUの占有率が高いとIEが吊死します.
ネット上で2つの方法があります.
1:window.set Interval(「getthedate()」、1000);window.setTimeout(「getthedate()」、1000)に変えます.
2:getthedate方法の中のwindow.set Interval(「getthedate()」、1000)を取り除き、JSコードの中で最後のgetthedateをwindow.set Interval(「getthedate()」、1000)に変えます.
運転後のパフォーマンスは良好です.
分析:
set Timeout(式,遅延時間)set Interval(式,インタラクティブ時間)の遅延時間/インタラクティブ時間は豪秒単位(1000 ms=1 s)のsetTimeoutである.   実行時は、ロード後の指定時間が遅延した後に、一回だけの式を実行します.ロード後、指定された時間ごとに式を実行します.