日期:2014-05-16  浏览次数:20295 次

新手问一个setTimeout问题
JScript code

<html>    
<head>
 <script type="text/javascript">
 function startTime()    {    
var today=new Date()    
var h=today.getHours()    
var m=today.getMinutes()    
var s=today.getSeconds()
 // add a zero in front of numbers<10    
m=checkTime(m)    
s=checkTime(s)    
document.getElementById('txt').innerHTML=h+":"+m+":"+s
 t=setTimeout('startTime()',500)    
}
function checkTime(i)    {
 if (i<10)  
 {i="0" + i}  
 return i    }    
</script>    
</head>
<body onload="startTime()">
<div id="txt"></div>
</body>
</html>


为什么t=setTimeout('startTime()',500)这里是500就可以实现时钟啊?
我们并不知道setTimeout之前的代码运行需要多长时间?

------解决方案--------------------
首先,我们当年做这个的时候绝不是循环读取当前系统时间。
其次,你反正是获取当前时间,t=setTimeout('startTime()',time) --time小于一秒即1000就不会错了,你说呢?
------解决方案--------------------
你是要实时显示当前时间吗?如果是,setInterval("fun()",1000)更合适
------解决方案--------------------
探讨

引用:

首先,我们当年做这个的时候绝不是循环读取当前系统时间。
其次,你反正是获取当前时间,t=setTimeout('startTime()',time) --time小于一秒即1000就不会错了,你说呢?


那也要取决于t=setTimeout('startTime()',time) 之前的代码需要的执行时间极短是吗?