有时我们需要在客户端显示服务器端的时钟。
一般而言,我们可以不停的刷新页面或者使用ajax局部刷新时钟显示组件。但这都将给服务端产生较大的压力。
可以近似地这样实现,在请求页面时,现从服务器获取服务器当前时间,然后以这个时间为起始点,启动一个以秒为单位的定时器计时。这样基本可以同步显示,误差只在网络传输以及页面载入所花的时间上。
当然这样可能过一段时间又会产生较大偏差,所以可以设置每隔几分钟或半小时同步一次。
下面的代码只演示如何从服务器获取时间并在客户端计时。
<html>
<head>
<script>
<?php
$date = localtime();
$jscode = 'var d = new Date(';
$jscode .= $date[5]+1900; //year
$jscode .= ", " . $date[4]; //month
$jscode .= ", " . $date[3]; //day
$jscode .= ", " . $date[2]; //hour
$jscode .= ", " . $date[1]; //minute
$jscode .= ", " . $date[0]; //second
$jscode .= ");/n";
echo $jscode;
?>
function showtime()
{
document.getElementById("showtime").innerHTML=d.toLocaleString();
d = new Date(d.valueOf()+1000);
setTimeout("showtime()", 1000);
}
</script>
</head>
<body nload='showtime()'>
<div id=showtime></div>
</body>
</html>
在浏览器显示服务器时钟
最新推荐文章于 2022-01-18 13:24:54 发布