Raj*_*amy 6 html javascript timer
我试图为每毫秒运行一个函数,为了实现这一点,我只是setInterval在javascript中首选概念.我的代码如下,
HTML:
<div id=test>0.0</div>
Run Code Online (Sandbox Code Playgroud)
脚本:
var xVal = 0;
var xElement = null;
xElement = document.getElementById("test");
var Interval = window.setInterval(startWatch, 1);
function startWatch(){
xVal += 1;
xElement.innerHTML = xVal;
}
Run Code Online (Sandbox Code Playgroud)
所以上面的代码工作正常.但是当我使用真实时钟测试结果时,真正的时钟需要1000毫秒才能完成1秒,同时结果需要超过1000毫秒才能完成一秒钟.
谁能告诉我,
我的代码有什么错误吗?如果是,请告诉我,如何准确显示毫秒.
代码中没有错误,但JavaScript定时器(setInterval和setTimeout)并不精确.浏览器不能遵守如此短的间隔.所以我担心没有办法精确地将毫秒增加一,并在Web浏览器上显示更新.在任何情况下,人眼都看不到!
精确的解决方法将涉及更大的间隔和时间戳来计算经过的时间(以毫秒为单位):
var start = new Date().getTime();
setInterval(function() {
var now = new Date().getTime();
xElement.innerHTML = (now - start) + 'ms elapsed';
}, 40);
Run Code Online (Sandbox Code Playgroud)
你不能。浏览器有一个最小延迟。你不能每毫秒运行一个函数。
来自 Mozilla 的文档:
...4ms 由 HTML5 规范指定,并且在各个浏览器中保持一致...