浏览器似乎缓存DateTime

时间:2017-12-16 15:35:07

标签: javascript datetime

我意识到如果我使用新的Date对象,系统时间的更改不会立即反映在javascript,event中。它每分钟才更新一次。



var fakeElapsed = 0;

$(document).ready(function(){
	
    var oldTime = 0;
  
    function fakeTimeLoop(time){
		  fakeElapsed+=(time-oldTime);
		  oldTime = time;
      $("div").html(fakeElapsed);
	  }
  
	  var clock = new Date();
    var start = clock.getTime(); 
    oldTime = clock.getTime();
    setInterval(function(){
        var clock2 = new Date();
        var end = clock2.getTime();  
        var elapsed = end-start;
        if(elapsed%5===0){
          fakeTimeLoop(end);
        }},
        1
    );
  
 });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
<div></div>
</body>
&#13;
&#13;
&#13;

时间码,如果您将时间向前(或向后),则需要一分钟来改变经过的时间。

无论如何都要每秒更新一次系统时间吗?

编辑:对于那些感到困惑的人来说,系统的变化并没有立即反映在Chrome和Opera上,但是在IE和Mozzila上,它立即被反映出来,我假设它的命令是为了避免每次需要构建昂贵的系统调用一个新的Date对象。

我在寻找:无论如何要在Chrome / opera中获取当前系统时间或立即检测到系统时间的变化?

1 个答案:

答案 0 :(得分:0)

我并不完全清楚你要完成的是什么,但你的setInterval被编程为每毫秒执行一次(第二个参数以毫秒为单位),但是{{3} }。即使有这个限制,时间也不保证是精确的,所以函数可以很好地执行每11,12,13等毫秒。