1 js中定時器分為兩種:setInterval和setTimeout, 但是在代碼的執行中,定時器的優先級最低,系統里其他不在執行的時候,它才開始。例子如下: 2 3 <script> 4 window.onload=function(){ 5 setInterval(function(){ 6 alert(1); 7 },10); 8 for(var i=0;i<1000000;i++){ 9 for(var j=0;j<1000000;j++){ 10 var a=10; 11 a*=5; 12 } 13 14 } 15 alert(a); 16 }; 17 </script> 18 19 定時器里面的執行時間為10毫秒, for循環里面為100萬毫秒。打開頁面的時候一直處於刷新狀態,而不是先彈出1, 刷新一段時間后,先彈出50;再彈出1; 20 21 22 第二個例子: 23 24 <script> 25 window.onload=function (){ 26 var oMin=document.getElementById('min'); 27 var oSec=document.getElementById('sec'); 28 var oMin2=document.getElementById('min2'); 29 var oSec2=document.getElementById('sec2'); 30 31 var start=new Date(); 32 var s2=0; 33 34 setInterval(function (){ 35 var now=new Date(); 36 37 var s=parseInt((now.getTime()-start.getTime())/1000); 38 39 s2+=0.01; 40 41 oMin.innerHTML=parseInt(s/60); 42 oSec.innerHTML=s%60; 43 44 oMin2.innerHTML=parseInt(s2/60); 45 oSec2.innerHTML=parseInt(s2%60); 46 }, 10); 47 48 document.getElementById('div1').innerHTML=new Date(); 49 }; 50 </script> 51 </head> 52 53 <body> 54 <div id="div1"></div> 55 <span id="min">00</span>:<span id="sec">00</span><br> 56 <span id="min2">00</span>:<span id="sec2">00</span> 57 </body> 58 </html> 59 上下兩個秒表經過一段時間后純在了時間差 問題出現在s2+=0.01; 定時器會受系統其它函數的影響,因而影響其性能。導致存在誤差-------也就是說以后遇到時間的時候,盡量用系統的時間來處理。比如: 60 61 秒表: 62 63 var start=new Date(); 64 65 setInterval(function(){ 66 67 var now=new Date(); 68 var s=parseInt((now.getTime()-start.getTime())/1000); 69 70 },1000), 71 72 也可以實現秒表效果。