更多内容减慢setTimeout?

时间:2013-12-22 00:55:00

标签: javascript php clock processing-efficiency

所以我整天都在研究这个时钟,并最终在我的沙箱页面上完美地工作。

沙盒页面上几乎没有任何东西,时钟运行得很漂亮,但是当我在index.php上为我的时钟添加相同的代码时,它会在时间和“NaN:NaN:”之间出现波动和闪烁:楠:是”

所以我想知道的是,如果我在页面上的内容越多,是否会导致它“闪烁”?

<script language="javascript" type="text/javascript">

function clock(i){
var i =new Number(i);//Establish var type so math adds up
i=(i+1000);//Add a second to timestamp
setTimeout('clock("'+i+'")',1000)//Setup timer

var lastTick=new Date(i);//New timestamp applied to date function
var h=lastTick.getHours();
var m=lastTick.getMinutes();
var s=lastTick.getSeconds();
var diem="am";

//Some clean up to make it "clock-like"
if(m<10){m="0"+m;}
if(s<10){s="0"+s;}
if(h==0){h=12;}
if(h>12){h=h-12;diem="pm";}

//Setup string for clock and insert it to div
var clock=h+":"+m+":"+s+" "+diem;
$("#clock").text(clock);
}
</script>

<div id="clock"></div>
<script type="text/javascript">
    clock('<?php echo (time()*1000)?>');//Convert PHP timestamp to Javascript
</script>

我在多个平台上得到这个。当我增加重复率(较低的setTimeout速率到100ms)时,它看起来更好,但最终会出错并保持在有缺陷的状态。

我的最终目标是拥有时钟显示服务器时间。我认为使用ajax ping服务器的时间会让事情陷入困境,所以我认为从PHP时间戳启动的计时器可以节省带宽。如果有更有效的方法可以解决这个问题,我想知道。

1 个答案:

答案 0 :(得分:1)

没有php不受JavaScript的影响

此代码可能会干扰您编写的其他javascript代码,如果您没有定义相同的变量两次