是否存在诸如javascript窗口onidle事件之类的事件

是否存在诸如javascript窗口onidle事件之类的事件,javascript,events,Javascript,Events,我有我的init()循环运行,我想在更改窗口对象(调整大小、移动等)时清除它 当我完成这项工作时,我希望能够调用类似的东西:window.addEventListener('idle',function(){if(!window.myTimer){init();}) 我想只要通过以下途径恢复就足够安全了: window.addEventListener('mouseup',function(){if(!window.myTimer){init();}); 然而,这一个甚至没有达到我预期的效果,它

我有我的
init()循环运行,我想在更改窗口对象(调整大小、移动等)时清除它

当我完成这项工作时,我希望能够调用类似的东西:
window.addEventListener('idle',function(){if(!window.myTimer){init();})

我想只要通过以下途径恢复就足够安全了:

window.addEventListener('mouseup',function(){if(!window.myTimer){init();});

然而,这一个甚至没有达到我预期的效果,它忽略了滚动方面。我还尝试了
onchange
事件,该事件会随着情况的变化而触发


有什么想法吗?

在快速阅读之后,花点时间测试一下;下面是我对
requestIdleCallback
函数()的基本解释

/*全局变量声明*/
window.myTimer=null;
window.counter=0;
/*结束全局变量声明*/
函数init(){
/*我的自定义检查代码在这里*/
document.getElementById('counter').innerHTML=window.counter+“”;
控制台日志(窗口计数器);
window.counter+=1;
/*结束我的自定义检查代码*/
/*无阻塞环路*/
window.myTimer=setTimeout(init,50);
/*端非阻塞环路*/
}
/*事件侦听器声明*/
addEventListener(“change”,function(){clearInterval(window.myTimer);window.myTimer=null;});
requestIdleCallback(函数(){if(!window.myTimer){init();}});
/*结束事件侦听器声明*/

@ChristopherHarris感谢您提供的链接,当我查看窗口事件时,我没有在MDN上看到它,我将更深入地了解它,因为它听起来正是我所需要的。不幸的是,IE/edge中没有此链接,但您可能会在某处找到一个多边形填充。并且在中不可用Safari@ChristopherHarris你能把它正式化为一个answe吗r、 所以我可以相信你让我得到了我的答案?无论如何,谢谢你!!!@Christopherraris好的,我只是想表达我对你的感激之情,让你知道我到底要去哪里,并因此而赢得声誉。
function init() {
    //$.ajax({url: blah-blah-blah...});
    window.myTimer = setTimeout(init, 1000);
    return;
}