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 也可以實現秒表效果。