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

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

script標(biāo)簽的defer 問題?

script標(biāo)簽的defer 問題?

開心每一天1111 2019-05-25 14:20:27
標(biāo)簽有defer和async屬性,defer屬性標(biāo)注的腳本會被異步下載但是不會被執(zhí)行,直到文檔的載入和解析完成,并可以操作,腳本才會被執(zhí)行。這個異步下載是js主線程做的,還是頁面渲染的線程做的?
查看完整描述

2 回答

?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊

在瀏覽器中,JavaScript是單線程的,并且和UI渲染共用一個線程。
加個引用更有說服力,出自于最新版《深入淺出Nodejs》48頁第三句。我也看到有資料說,JavaScript線程和UI渲染都是瀏覽器線程,但因?yàn)樗鼈兓コ?,所以只能串行。不知道那種說法是正確的。
對于defer和anync的異步加載我也有疑惑,所以我查找到這個資料:
HTML5提出了WebWorker,它會在當(dāng)前JavaScript的執(zhí)行主線程中利用Worker類新開辟一個額外的線程來加載和運(yùn)行特定的JavaScript文件,這個新的線程和JavaScript的主線程之間并不會互相影響和阻塞執(zhí)行。
                            
查看完整回答
反對 回復(fù) 2019-05-25
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊

1:JS引擎線程和UI[主]線程是互斥關(guān)系,而不是在同一個線程,具體可查詢線程互斥的概念。
很顯然的,js引擎大部分都以虛擬機(jī)的概念存在,不大可能跟上層應(yīng)用公用線程。(個人猜測)
2:在任何一種面向用戶的程序設(shè)計(jì)里面,I/O放在主線程同步都是一種無知的行為。場景假設(shè):
如果瀏覽器的網(wǎng)絡(luò)資源請求線程都安排在主線程,那sry,你這張圖片下載完成之前,瀏覽器是卡死的。很顯然現(xiàn)代瀏覽器都不這么二,所以,網(wǎng)絡(luò)請求應(yīng)該不是在UI[主]線程。
3:是HTML標(biāo)準(zhǔn),在早期的時(shí)候,還有JScript,VBScript等,而它配備的配置(屬性)是標(biāo)準(zhǔn)里面定義用來告訴瀏覽器怎么處理這個標(biāo)簽的。
defer和async屬性都是告訴瀏覽器,這里面的內(nèi)容你不要等待,你繼續(xù)~;否則,瀏覽器默認(rèn)情況是要等這里面的內(nèi)容下載完成后轉(zhuǎn)交給JS線程執(zhí)行在繼續(xù)往下解析。
4:WebComponent
5:可以了解下客戶端的知識,不要局限于純前端,你提這問題,稍微有點(diǎn)客戶端領(lǐng)域的知識的話,不看任何資料都能猜出個大該。
                            
查看完整回答
反對 回復(fù) 2019-05-25
  • 2 回答
  • 0 關(guān)注
  • 326 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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