/** * 精准时间迭代器 * Create By Tujia @2017.05.22 * * 使用示例: * window.setMyInterval(function(){ * console.log(new Date().getTime()); * }, 2000); */ window.setMyInterval = function(func, interval){ var nexttime = interval; var start = new Date().getTime(); var now = null; var toffset = 0; var i = 0; var timer = null; var gogogo = function(){ timer = window.setTimeout(function(){ i++; now = new Date().getTime(); toffset = now - (start + i * interval); nexttime = interval - toffset; func(); gogogo(); }, nexttime); }; // 先立即执行一次 func(); // 启动迭代器 gogogo(); return timer; }