鍍金池/ 問(wèn)答/HTML/ 為什么nodejs CommonJS是同步的,前端amd,cmd是異步的?es6

為什么nodejs CommonJS是同步的,前端amd,cmd是異步的?es6模塊呢

為什么nodejs CommonJS是同步的,前端amd,cmd是異步的?es6模塊呢?

回答
編輯回答
厭遇

對(duì)后端來(lái)說(shuō),同步加載沒(méi)有問(wèn)題,因?yàn)?/p>

  1. 模塊都在本地,等待時(shí)間就是硬盤(pán)時(shí)間;
  2. 一旦啟動(dòng)之后一般不會(huì)關(guān),可靠性比啟動(dòng)時(shí)間重要。

對(duì)前端來(lái)說(shuō)

  1. 模塊都在服務(wù)器上,需要通過(guò)網(wǎng)絡(luò)請(qǐng)求,太慢;
  2. 同步xhr會(huì)堵塞瀏覽器,假死的話用戶(hù)體驗(yàn)很差,首屏?xí)r間很重要。

設(shè)計(jì)es6模塊的時(shí)候,并沒(méi)有強(qiáng)行指定同步或異步。但是所有瀏覽器對(duì)<script type="module"></script>都會(huì)默認(rèn)加defer,所以可以認(rèn)為也是異步的。

2017年12月22日 17:12