Berikut ialah kod paparan masa mudah:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>当前系统时间</title>
<link rel="stylesheet" href="style.css" />
<script language="javascript" type="text/javascript">
window.onload = function(){
showTime();
}
function checkTime(i){ //补位处理
return i < 10 ? "0" + i : i;
}
function showTime(){
var now=new Date();
var year= now.getFullYear();
var month= now.getMonth() + 1;
var day= now.getDate();
var h= now.getHours();
var m= now.getMinutes();
var s= now.getSeconds();
h=checkTime(h)
m=checkTime(m)
s=checkTime(s)
var weekday=new Array(7)
weekday[0]="星期日"
weekday[1]="星期一"
weekday[2]="星期二"
weekday[3]="星期三"
weekday[4]="星期四"
weekday[5]="星期五"
weekday[6]="星期六"
document.getElementById("show").innerHTML= year+"年"+month+"月"+day+"日 "+ " " +h+":"+m+":"+s;
t=setTimeout('showTime()',500)
}
</script>
</head>
<body>
<p class="content1">
<p id="show">显示时间的位置</p>
</p>
</body>
</html>
Jika setTimeout ditetapkan kepada 1000, ia akan menjadi satu saat lebih perlahan daripada masa sebenar Mengapa ini?
setTimeout(callback,time)
; 是指,callback
回调执行结束并延迟time
以后,在执行setTimeout()
;根据js单线程的特性,可能时间比time
Lebih lama di sini, sebab yang mungkin ialah panggilan balik juga memerlukan masa pelaksanaan tertentu, anda boleh menggunakan Garis Masa Chrome untuk menyemaknya; melihat kod, saya rasa tidak ada masalah;Ia sangat mudah Fungsi setTimeout merujuk kepada melaksanakan fungsi showTime selepas 500 (ms) atau 0.5 saat. Jika 1000, fungsi showTime akan dilaksanakan selepas 1 saat. Hanya selepas itu masalah yang anda nyatakan akan berlaku (semata-mata pemahaman peribadi saya ^~^).
Tidak kira sama ada ShowTime ditangguhkan sebanyak 1000 atau 500, mendapatkan masa dan mengemas kini DOM dilaksanakan pada masa yang sama, jadi tidak perlu ada kelewatan (melainkan pengiraan masa anda salah). Dan saya mengujinya di sini dan tidak melihat sebarang kelewatan.
Selain itu, mengapa tidak menggunakannya
setInterval
Anda mendapat data pada masa ini dahulu, dan kemudian memaparkannya satu saat kemudian.