无码色色,久久久久久免费精品喷水,美女把胸罩解开让男生摸,欧美一级在线观看视频,色亚洲天堂,色综合天天综合给合国产

咨詢電話:023-88959644    24小時(shí)服務(wù)熱線:400-023-8809
NEWS CENTER ·
新聞動(dòng)態(tài)
關(guān)注中技互聯(lián) 關(guān)注前沿

setTimeout 的黑魔法

發(fā)表日期:2016-05-03    文章編輯:重慶網(wǎng)站建設(shè)小編    瀏覽次數(shù):22    標(biāo)簽:

  setTimeout,前端工程師必定會(huì)打交道的一個(gè)函數(shù).它看上去非常的簡單,樸實(shí).有著一個(gè)很不平凡的名字--定時(shí)器.讓年少的我天真的以為自己可以操縱未來.卻不知樸實(shí)之中隱含著驚天大密.我還記得我第一次用這個(gè)函數(shù)的時(shí)候,我天真的以為它就是js實(shí)現(xiàn)多線程的工具.當(dāng)時(shí)用它實(shí)現(xiàn)了一個(gè)坦克大戰(zhàn)的小游戲,玩兒不亦樂乎.可是隨著在前端這條路上越走越遠(yuǎn),對(duì)它理解開始產(chǎn)生了變化.它似乎開始蒙上了面紗,時(shí)常有一些奇怪的表現(xiàn)讓我捉摸不透.終于,我的耐心耗盡,下定決心,要撕開它的面具,一探究竟.
  setTimeout() 方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。
  js是沒有多線程的.js引擎的執(zhí)行是單線程執(zhí)行.這個(gè)特性曾經(jīng)困擾我很久,我想不明白既然js是單線程的,那么是誰來為定時(shí)器計(jì)時(shí)的?是誰來發(fā)送ajax請(qǐng)求的?我陷入了一個(gè)盲區(qū).即將js等同于瀏覽器.我們習(xí)慣了在瀏覽器里面執(zhí)行代碼,卻忽略了瀏覽器本身.js引擎是單線程的,可是瀏覽器卻可以是多線程的,js引擎只是瀏覽器的一個(gè)線程而已.定時(shí)器計(jì)時(shí),網(wǎng)絡(luò)請(qǐng)求,瀏覽器渲染等等.都是由不同的線程去完成的。
  js引擎單線程執(zhí)行的,它是基于事件驅(qū)動(dòng)的語言.它的執(zhí)行順序是遵循一個(gè)叫做事件隊(duì)列的機(jī)制.從圖中我們可以看出,瀏覽器有各種各樣的線程,比如事件觸發(fā)器,網(wǎng)絡(luò)請(qǐng)求,定時(shí)器等等.線程的聯(lián)系都是基于事件的.js引擎處理到與其他線程相關(guān)的代碼,就會(huì)分發(fā)給其他線程,他們處理完之后,需要js引擎計(jì)算時(shí)就是在事件隊(duì)列里面添加一個(gè)任務(wù). 這個(gè)過程中,js并不會(huì)阻塞代碼等待其他線程執(zhí)行完畢,而且其他線程執(zhí)行完畢后添加事件任務(wù)告訴js引擎執(zhí)行相關(guān)操作.這就是js的異步編程模型.
  本文由重慶網(wǎng)站建設(shè)-中技互聯(lián):www.tmsmall666.cn
如沒特殊注明,文章均為中技互聯(lián)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自www.tmsmall666.cn
相關(guān)新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429號(hào)

  • qq客服
  • 公眾號(hào)
  • 手機(jī)版
  • 新浪微博