上個(gè)周日,介紹了如何使用setTimeout代替setInterval進(jìn)行間歇調(diào)用,這個(gè)周日,繼續(xù)來講《JavaScript高級(jí)程序設(shè)計(jì)》這本書里面,對(duì)于setTimeout的另一種妙用——防止循環(huán)超時(shí)

 

【這是鋪墊,為故事的高潮埋下伏筆】

  JS是單線程的,一個(gè)代碼塊里面的代碼,只能按順序從上到下執(zhí)行,所以如果中間有一塊代碼,執(zhí)行起來非常耗時(shí),就會(huì)導(dǎo)致下面的代碼無法執(zhí)行,出現(xiàn)瀏覽器假死的狀態(tài)。

  JS的耗時(shí)操作,常見的有兩種  1.向服務(wù)器發(fā)起請(qǐng)求   2.對(duì)數(shù)組的循環(huán)操作  (當(dāng)然,還有一種,就是把1和2合在一起,叫做  在循環(huán)操作里面向服務(wù)器發(fā)出請(qǐng)求,哈哈哈,實(shí)際項(xiàng)目里面經(jīng)常有人這么干)

  解決這兩種耗時(shí)操作的思路都是一樣的——異步編程。JS的異步編程,并不是多線程,因?yàn)檎缟厦嫠f的,JS是單線程的。JS的異步,直觀上的理解,就是延時(shí)和回調(diào)。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式