標籤:cti date() 實現 htm document innerhtml 一段 interval 狀態
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 也可以實現秒錶效果。
js定時器的一些小問題