JQ怎样实现跟setinteval一样的定时器效果

JQ怎样实现跟setinteval一样的定时器效果

阅读 2.7k
2 个回答

jQuery 无法实现。 setInterval,setTimeout 是内置的,不是 JS 层面能实现的。

在浏览器中,JS执行是单进程了,可以参考其他语言写一个类似的setTimeout:

function timeout(fun, waitTime){
    var _now = new Date().getTime();
    var _time = _now + waitTime;
    while( _time > _now ){
        _now = new Date().getTime();
    }
    fun();
    return [_now - _time];
}
timeout(function(){
    alert('Hello wrold!');
}, 1000);

咦,我的浏览器怎么不动了,

setInterval已经是js提供的最好的方案了,jQuery无法做出更好的解决方案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进