Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome在特定计时窗口焦点丢失之前调用超时_Javascript_Google Chrome_Settimeout - Fatal编程技术网

Javascript Chrome在特定计时窗口焦点丢失之前调用超时

Javascript Chrome在特定计时窗口焦点丢失之前调用超时,javascript,google-chrome,settimeout,Javascript,Google Chrome,Settimeout,下面是一些代码,它使用setTimeout每秒运行一个函数,然后检查该函数是否调用得太早 var date = Date.now(); var ttl=1000, to = setTimeout(function loop () { console.log("triggered!"); if (Date.now() - date < ttl) console.error("Yes"); date = Date.n

下面是一些代码,它使用
setTimeout
每秒运行一个函数,然后检查该函数是否调用得太早

var date = Date.now(); 
var ttl=1000, 
    to = setTimeout(function loop () {
       console.log("triggered!"); 
       if (Date.now() - date < ttl) 
         console.error("Yes"); 
       date = Date.now(); 
       to = setTimeout(loop, ttl);
     }, ttl);
var date=date.now();
变量ttl=1000,
to=设置超时(函数循环(){
log(“已触发!”);
如果(Date.now()-Date

console.error
调用不应出现。但是如果你在chrome上,点击
Alt+Tab
的速度足够快,次数足够多,它有时会出现。我知道chrome在超时方面做了一些奇怪的事情,我想Javascript处理超时和间隔的方式有些问题。你应该检查多少还为时过早,然后在你的检查中添加一些“有效范围”(大约+/-5ms)。虽然+10ms是可以接受的,但-10ms不是。在执行代码之前,js调度程序将至少等待
timeout
ms。所以可能javascript间隔没有错误,而是Date.now()的准确性?试试这个