zoukankan      html  css  js  c++  java
  • Browser进程和浏览器内核(Renderer进程)的通信过程

    看到这里,首先,应该对浏览器内的进程和线程都有一定理解了,那么接下来,再谈谈浏览器的Browser进程(控制进程)是如何和内核通信的,

    这点也理解后,就可以将这部分的知识串联起来,从头到尾有一个完整的概念。

    如果自己打开任务管理器,然后打开一个浏览器,就可以看到:任务管理器中出现了两个进程(一个是主控进程,一个则是打开Tab页的渲染进程)
    然后在这前提下,看下整个的过程:(简化了很多)

    • Browser进程收到用户请求,首先需要获取页面内容(譬如通过网络下载资源),随后将该任务通过RendererHost接口传递给Render进程

    • Renderer进程的Renderer接口收到消息,简单解释后,交给渲染线程,然后开始渲染

      • 渲染线程接收请求,加载网页并渲染网页,这其中可能需要Browser进程获取资源和需要GPU进程来帮助渲染

      • 当然可能会有JS线程操作DOM(这样可能会造成回流并重绘)

      • 最后Render进程将结果传递给Browser进程

    • Browser进程接收到结果并将结果绘制出来

    这里绘一张简单的图:(很简化)

    看完这一整套流程,应该对浏览器的运作有了一定理解了,这样有了知识架构的基础后,后续就方便往上填充内容。

    这块再往深处讲的话就涉及到浏览器内核源码解析了,不属于本文范围。

    如果这一块要深挖,建议去读一些浏览器内核源码解析文章,或者可以先看看参考下来源中的第一篇文章,写的不错

  • 相关阅读:
    MOSS的CSS样式说明
    RSS 简介(一)
    母版页详细分析
    导出 WINDOWS\assembly中DLL文件
    文件下载代码
    列表Field属性的巧妙运用(隐藏栏)
    javascript弹出窗口总结
    转[VBA起步]常用的、带解释的 VBA 短句
    如何生成自定义列表
    mysql 连接字符串与SQL不同
  • 原文地址:https://www.cnblogs.com/crith/p/9949245.html
Copyright © 2011-2022 走看看