課程
/前端開發
/JavaScript
/原生 JS 實現幀動畫庫
老師,任務鏈上的同步和異步任務的區別··哪些是異步任務?動畫暫停是屬于異步任務嗎?
2016-07-08
源自:原生 JS 實現幀動畫庫 1-2
正在回答
首先,要理解JS是單線程的。也就是說,在一次Event Loop中,會同步執行完所有JS代碼。同步任務是在一次Event Loop中執行的JS代碼,去完成相應的“任務”。異步任務不是一次Event Loop可以做完的,通常JS有幾種方式實現異步,如異步ajax請求,setTimeout,requestAnimationFrame等。動畫庫這個案例中,我們引入了“任務鏈”這個概念,把一些同步異步的“任務”添加到任務鏈上。所有通過timeline創建的動畫都是異步任務,因為它底層用到了requestAnimationFrame。動畫暫停不是一個任務,它是調用了timeline的一個接口方法,達到暫停動畫執行的目的。
好的? 太感謝老師了
舉報
了解如何用原生JS實現酷炫的幀動畫,吸引他她的注意
3 回答同步和異步怎么理解?
1 回答無限重復同步任務出現Bug(無盡遞歸too much recursion)
1 回答為啥要多寫一步window[item.id]?
1 回答var item =image[keys]; 1 item = image[keys] ={ 2 第2個item是重新定義的一個item對象嗎和上邊的item有關系嗎 src ;item; //這里的item和上邊的item代表的是不是同一個值啊 3 }
1 回答是否要用服務器
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-08
首先,要理解JS是單線程的。也就是說,在一次Event Loop中,會同步執行完所有JS代碼。
同步任務是在一次Event Loop中執行的JS代碼,去完成相應的“任務”。
異步任務不是一次Event Loop可以做完的,通常JS有幾種方式實現異步,如異步ajax請求,setTimeout,requestAnimationFrame等。
動畫庫這個案例中,我們引入了“任務鏈”這個概念,把一些同步異步的“任務”添加到任務鏈上。所有通過timeline創建的動畫都是異步任務,因為它底層用到了requestAnimationFrame。
動畫暫停不是一個任務,它是調用了timeline的一個接口方法,達到暫停動畫執行的目的。
2016-07-12
好的? 太感謝老師了