浏览器工作原理

  • 为什么js是单线程,web works是多线程?
  • 为什么js单线程却拥有异步?
  • event loop?
  • 为什么setTimeout时间时间不准确

浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源。这里所说的资源一般是指 HTML 文档,也可以是 PDF、图片或其他的类型。资源的位置由用户使用 URI(统一资源标示符)指定。

浏览器的高层结构

用户界面:地址栏,浏览器页面前进后退,刷新和停止刷新按钮,书签...
浏览器引擎:用户界面与呈现引擎之间传送指令
呈现引擎:显示请求内容,解析html&css
网络:网络调用。
用户界面后端:用户绘制基本的小窗口部件
JS解释器:用于解析和执行js代码
数据存储:浏览器在硬盘上保存的各种数据。

浏览器是多进程的

浏览器设置中可以找到浏览器的任务管理


浏览器工作原理_第1张图片
任务管理器.png

可以看每个页面都是独立的进程,


浏览器工作原理_第2张图片
任务管理器1.png

进程分一下几种:
  • 主进程:主进程,只有一个
  • 浏览器渲染进程:进程之间互不影响
  • 第三方插件进程:使用时创建进程
  • GPU进程:用于3D绘制

浏览器输入网页之后发生了什么?

呈现引擎示意图(webkit举例)


浏览器工作原理_第3张图片
webkit.png
  • 呈现引擎解析html文档,讲标记转化成‘树’,同时解析外包css文件。

  • 创建呈现树,包含视觉属性(颜色和尺寸),排列顺序就是屏幕展示顺序

  • 呈现树中每个节点应该出现在屏幕的确切坐标

  • 为了更好的用户体验,引擎会力求尽快将内容展示在屏幕上。

  • 解析器遇到

你可能感兴趣的:(浏览器工作原理)