<html>
<head>
<script type="text/javascript">
function startTime()//函數(shù)startTime, 功能:顯示當(dāng)前時間
{ var today=new Date()//聲明一個時間對象
var h=today.getHours()//獲取當(dāng)前小時
var m=today.getMinutes()//獲取當(dāng)前分鐘
var s=today.getSeconds()//獲取當(dāng)前秒數(shù)
// add a zero in front of numbers<10? ?
m=checkTime(m)//調(diào)用checkTime函數(shù),功能見下面
s=checkTime(s)//調(diào)用checkTime函數(shù)嗤放,功能見下面 document.getElementById('txt').innerHTML=h+":"+m+":"+s //在txt標(biāo)簽里輸出時間 小時:分鐘:秒
t=setTimeout('startTime()',500) //每隔500毫秒(0.5秒)刷新一次時間努潘,為了實(shí)現(xiàn)時間動態(tài)顯示效果
}
function checkTime(i)//checkTime函數(shù),設(shè)置小于10的時間數(shù)字格式赞赖,例如5秒顯示成05秒 {
if (i<9)
{i="0" + i}
return i
}
</script>
</head>
<body onload="startTime()"> //頁面加載時調(diào)用startTime函數(shù)
<div id="txt"></div>//用來顯示時間的標(biāo)簽
</body>
</html>
看上面的代碼: ? ? ? ? ?Javascript中:小時鐘t=setTimeout('startTime()',500)為什么隔500毫秒就刷新頁面而不是每隔1000毫秒(即1秒)再刷新一次頁面甜害? 原因: ? ? ? ? 這里的setTimeout是遞歸執(zhí)行的咱枉。也就是在執(zhí)行一次后卑硫,時間更新以后,才會設(shè)置下次的setTimeout蚕断,這里執(zhí)行更新時間的代碼也是要耗費(fèi)時間的欢伏,因?yàn)閖avascript是腳本語言,又基于瀏覽器亿乳,性能比較差硝拧,而且更新時間是dome操作,比較慢葛假。所以設(shè)置500能保證精度障陶,避免延遲。 ? ? ? ? ?如果設(shè)置1000毫秒刷新頁面聊训,由于程序的執(zhí)行還需要時間抱究,所有刷新頁面的時間必然大于1000毫秒=1秒,此時就有可能出現(xiàn)秒數(shù)不是依次增加1秒带斑,例如:在開始執(zhí)行程序時時間是12點(diǎn)30分30.9秒鼓寺,而頁面是精確到1秒,所有頁面上顯示的是12:30:30勋磕,如果設(shè)置1000毫秒(實(shí)際上是1.3秒)更新一次妈候,則下次頁面顯示的時間是12點(diǎn)30分32秒(因?yàn)?0.9+1.3=32.2),直接跳過12點(diǎn)30分31秒,這樣更新就不及時了挂滓,對吧苦银? ? ? ? ? ? ?設(shè)置500毫秒更新一次頁面是通常做法,但是也不能設(shè)置太小杂彭,刷新太頻繁會造成瀏覽器負(fù)載的浪費(fèi)墓毒。