成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

瀏覽器內核處理流程

dingding199389 / 744人閱讀

摘要:瀏覽器的內核是多線程的,它們在內核控制下相互配合以保持同步,一個瀏覽器至少實現(xiàn)三個常駐線程引擎線程,渲染線程,瀏覽器事件觸發(fā)線程。渲染線程負責渲染瀏覽器界面,當界面需要重繪或由于某種操作引發(fā)回流時,該線程就會執(zhí)行。

瀏覽器的內核是多線程的,它們在內核控制下相互配合以保持同步,一個瀏覽器至少實現(xiàn)三個常駐線程:JavaScript引擎線程,GUI渲染線程,瀏覽器事件觸發(fā)線程

JavaScript引擎是基于事件驅動單線程執(zhí)行的,JavaScript引擎一直等待著任務隊列中任務的到來,然后加以處理,瀏覽器無論什么時候都只有一個JavaScript線程在運行JavaScript程序。

GUI渲染線程負責渲染瀏覽器界面,當界面需要重繪(Repaint)或由于某種操作引發(fā)回流(Reflow)時,該線程就會執(zhí)行。但需要注意,GUI渲染線程JavaScript引擎是互斥的,當JavaScript引擎執(zhí)行時GUI線程會被掛起,GUI更新會被保存在一個隊列中等到JavaScript引擎空閑時立即被執(zhí)行。

事件觸發(fā)線程,當一個事件被觸發(fā)時,該線程會把事件添加到待處理隊列的隊尾,等待JavaScript引擎的處理。這些事件可來自JavaScript引擎當前執(zhí)行的代碼塊如setTimeout、也可來自瀏覽器內核的其他線程如鼠標點擊、Ajax異步請求等,但由于JavaScript的單線程關系,所有這些事件都得排隊等待JavaScript引擎處理(當線程中沒有執(zhí)行任何同步代碼的前提下才會執(zhí)行異步代碼)。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/88238.html

相關文章

  • 《Webkit技術內幕》之頁面渲染過程

    摘要:文章同步到技術內幕之頁面渲染過程最近拜讀了傳說中的技術內幕一書,有很大收獲,尤其是對頁面渲染有了較深的認識。解析語法分析,基于詞法解釋器生成的新標記,構建成抽象語法樹,解析器嘗試將其與某條語法規(guī)則進行匹配。 文章同步到github《Webkit技術內幕》之頁面渲染過程 最近拜讀了傳說中的《Webkit技術內幕》一書,有很大收獲,尤其是對頁面渲染有了較深的認識。由于功力有限,而且書中設...

    vvpvvp 評論0 收藏0
  • 《Webkit技術內幕》之頁面渲染過程

    摘要:文章同步到技術內幕之頁面渲染過程最近拜讀了傳說中的技術內幕一書,有很大收獲,尤其是對頁面渲染有了較深的認識。解析語法分析,基于詞法解釋器生成的新標記,構建成抽象語法樹,解析器嘗試將其與某條語法規(guī)則進行匹配。 文章同步到github《Webkit技術內幕》之頁面渲染過程 最近拜讀了傳說中的《Webkit技術內幕》一書,有很大收獲,尤其是對頁面渲染有了較深的認識。由于功力有限,而且書中設...

    adam1q84 評論0 收藏0

發(fā)表評論

0條評論

dingding199389

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<