久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      javascript引擎是單線程嗎

      JavaScript引擎是單線程的;JavaScript的主要用途是與用戶互動以及操作DOM,為例避免復(fù)雜的同步問題,使其同一時間只能做一件事情,所以JavaScript是單線程的。

      javascript引擎是單線程嗎

      本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

      javascript引擎是單線程嗎

      JavaScript引擎是單線程的。

      JS為什么是單線程的? 為什么需要異步? 單線程又是如何實現(xiàn)異步的呢?

      技術(shù)的出現(xiàn),都跟現(xiàn)實世界里的應(yīng)用場景密切相關(guān)的。

      同樣的,我們就結(jié)合現(xiàn)實場景,來回答問題

      (1) JS為什么是單線程的?

      單線程:同一個時間只能做一件事

      JavaScript的單線程,與他的用途有關(guān)。作為瀏覽器腳本語言,JavaScript的主要用途是與用戶互動,以及操作DOM。這就決定了他只能是單線程,否則會帶來很復(fù)雜的同步問題。比如,假定JavaScript同時有兩個線程,一個線程在某個DOM節(jié)點上添加內(nèi)容,另一個線程刪除了這個節(jié)點,這時瀏覽器應(yīng)該以哪個線程為準?

      為了利用多核CPU的計算能力,HTML5提出Web Worker 標(biāo)準,允許JavaScript腳本創(chuàng)建多個線程,但是子線程完全受主線程控制,且不得操作DOM。所以,這個新標(biāo)準并沒有改變JavaScript單線程的本質(zhì)。

      JS最初被設(shè)計用在瀏覽器中,那么想象一下,如果瀏覽器中的JS是多線程的。

      場景描述:

      那么現(xiàn)在有2個進程,process1 process2,由于是多進程的JS,所以他們對同一個dom,同時進行操作

      process1 刪除了該dom,而process2 編輯了該dom,同時下達2個矛盾的命令,瀏覽器究竟該如何執(zhí)行呢?

      這樣想,JS為什么被設(shè)計成單線程應(yīng)該就容易理解了吧。

      (2) JS為什么需要異步?

      場景描述:

      如果JS中不存在異步,只能自上而下執(zhí)行,如果上一行解析時間很長,那么下面的代碼就會被阻塞。

      對于用戶而言,阻塞就意味著"卡死",這樣就導(dǎo)致了很差的用戶體驗

      所以,JS中存在異步執(zhí)行。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號