第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

阿里前端面試題:requestAnimationFrame實現(xiàn)類似setInterval的計時器

阿里前端面試題:requestAnimationFrame實現(xiàn)類似setInterval的計時器

翻閱古今 2019-05-23 11:05:00
使用requestAnimationFrame實現(xiàn)類似setInterval的計時器
查看完整描述

2 回答

?
慕標琳琳

TA貢獻1830條經(jīng)驗 獲得超9個贊

供參考,沒有實現(xiàn)字符串功能,反正也不推薦使用。
functionsetInterval2(cb,delay,...args){
//記錄所有正在運行的interval用于撤銷
letpool=window[Symbol.for('IntervalPool')]
if(!pool){
pool={}
window[Symbol.for('IntervalPool')]=pool
}
//interval最低10ms,雖然每frame至少得16ms
delay=delay>=10?delay:10
//intervalid
letticket=Date.now()
//每次interval開始時間
letstartTime=ticket
pool[ticket]=true
loop()
returnticket
functionloop(){
if(!pool[ticket]){return}
constnow=Date.now()
if(now-startTime>=delay){
startTime=now
cb(...args)
}
requestAnimationFrame(loop)
}
}
functionclearInterval2(ticket){
letpool=window[Symbol.for('IntervalPool')]
if(pool&&pool[ticket]){
deletepool[ticket]
}
}
                            
查看完整回答
反對 回復 2019-05-23
?
天涯盡頭無女友

TA貢獻1831條經(jīng)驗 獲得超9個贊

functiona(callback){
requestAnimationFrame(function(){
//你的代碼
callback&&callback()
a()
})
}
需要注意requestAnimationFrame的瀏覽器兼容性問題
window.requestAnimationFrame=window.requestAnimationFrame||
window.webkitRequestAnimationFrame||
window.mozRequestAnimationFrame||
window.msRequestAnimationFrame||
window.oRequestAnimationFrame||
function(callback){
//為了使setTimteout的盡可能的接近每秒60幀的效果
window.setTimeout(callback,1000/60);
};
window.cancelAnimationFrame=window.cancelAnimationFrame||
Window.webkitCancelAnimationFrame||
window.mozCancelAnimationFrame||
window.msCancelAnimationFrame||
window.oCancelAnimationFrame||
function(id){
//為了使setTimteout的盡可能的接近每秒60幀的效果
window.clearTimeout(id);
}
                            
查看完整回答
反對 回復 2019-05-23
  • 2 回答
  • 0 關(guān)注
  • 266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號