首页 > 其他分享 >浏览器原理

浏览器原理

时间:2022-10-01 00:33:22浏览次数:74  
标签:引擎 浏览器 用户界面 渲染 HTML 文档 原理

参考:

https://web.dev/howbrowserswork/

https://www.cnblogs.com/zhuanzhuruyi/p/6496276.html

1 浏览器的作用

浏览器的主要作用是呈现web资源,而这些web资源是通过请求一个服务器获得。web资源可以是html文档、pdf、图片或者其他类型的资源。资源的地址使用URI来指定。

浏览器解释和显示HTML文件的方式在HTML和CSS规范中指定。这些规范是由W3C(World Wide Web Consortium)组织维护的,它是网络的标准组织。但是各个浏览器产品不完全遵守W3C制定的规范,它们都有定制各自的扩展,这也导致了各个浏览器之间的兼容问题。

浏览器的界面一般都有固定的形式:

1 地址栏

2 前进和后退按钮

3 书签

但是W3C规范并没有规定浏览器界面应该长啥样,之所以目前主流浏览器都有这些界面主要是因为多年经验的良好实践和各个浏览器产品之间的互相模仿。

2 浏览器的结构

浏览器的主要组件包括:

  1. 用户界面:除了浏览器主窗口显示的你请求的页面外,其他显示的各个部分都属于用户界面。
  2. 浏览器引擎:在用户界面和渲染引擎之间传送指令。
  3. 渲染引擎:负责显示请求的内容。
  4. 网络:用于网络调用,比如 HTTP 请求。其接口与平台无关,并为所有平台提供底层实现。
  5. 用户界面后端:用于绘制基本的窗口小部件,比如组合框和窗口。其公开了与平台无关的通用接口,而在底层使用操作系统的用户界面方法。
  6. JavaScript 解释器:用于解析和执行 JavaScript 代码。
  7. 数据存储:这是持久层。浏览器需要在硬盘上保存各种数据,例如 Cookie。

3 rending engine 

渲染引擎rending engine的职责是渲染,即在浏览器屏幕上显示所请求的内容。

默认情况下,rending engine可以显示HTML、XML文档和图片。如果要显式其他数据类型需要通过插件或者扩展。比如显式pdf文档需要pdf插件来支持。

不同的浏览器使用不同的rending engine,比如IE使用Trident,FireFox使用Gecko,Chrome使用Blink(WebKit)

3.1 渲染过程

1 解析HTML文档,并将文档中的标签转化为dom节点树,即”内容树”。同时,它也会解析外部CSS文件以及style标签中的样式数据。这些样式信息连同HTML中的”可见内容”一道,被用于构建另一棵树——”渲染树(Render树)”。

2 渲染树由一些带有视觉属性(如颜色、大小等)的矩形组成,这些矩形将按照正确的顺序显示在频幕上

3 渲染树构建完毕之后,将会进入”布局”处理阶段,即为每一个节点分配一个屏幕坐标。再下一步就是绘制(painting),即遍历render树,并使用UI后端层绘制每个节点。

4 这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render树。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容(每次下载8K的块)。

下图显式的是Webkit的渲染过程(Gecko或其他引擎可能略有不同):

 

 

 

 

 

 

 

 

 

 

待续...

 

标签:引擎,浏览器,用户界面,渲染,HTML,文档,原理
From: https://www.cnblogs.com/zhenjingcool/p/16746610.html

相关文章

  • springboot自动配置原理以及手动实现配置类
    springboot自动配置原理以及手动实现配置类1、原理spring有一个思想是“约定大于配置”。配置类自动配置可以帮助开发人员更加专注于业务逻辑开发,springboot在启动的时候......
  • springboot自动配置原理以及手动实现配置类
    springboot自动配置原理以及手动实现配置类1、原理spring有一个思想是“约定大于配置”。配置类自动配置可以帮助开发人员更加专注于业务逻辑开发,springboot在启动的时......
  • 源码学习之MyBatis的底层查询原理
    导读本文通过MyBatis一个低版本的bug(3.4.5之前的版本)入手,分析MyBatis的一次完整的查询流程,从配置文件的解析到一个查询的完整执行过程详细解读MyBatis的一次查询流程,通过本......
  • 多御安全浏览器使用技巧,剖析7大优点特性
    多御安全浏览器自上线以来,显示出了极大的潜力,并成功吸引人们的注意。通过使用多御安全浏览器能够发送电子邮件,使用办公软件以及浏览网页、看视频等等。下面我们来介绍多御......
  • 浏览器必备的上网工具,同样也是收藏党必备工具, 网页图片收藏工具,可以收藏全网的网页图
    浏览器必备的上网工具,同样也是收藏党必备工具,网页图片收藏工具,可以收藏全网的网页图片,无需下载到本地了,太方便了工具名称:BdTab新标签页插件,支持图片收藏......
  • 掘金小册 – Taro 多端开发实现原理与项目实战
    本小册按开篇、基础篇、进阶篇、实战篇、总结篇进行编排,以便于读者按照自己的已有知识进行学习。剖析Taro多端开发框架的实现原理,并通过电商核心的项目实战,帮助开发者快......
  • Cobbler批量部署原理
    Cobbler可以干什么Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS......
  • Cobbler批量部署原理
    Cobbler可以干什么Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、......
  • 合约量化机器人系统开发技术方案(成熟代码)原理
    区块链,去中心化数据库,具有去中心化、开放性、独立性、安全性和匿名性五个特征。由于互联网身份的虚拟性,人们无法建立信任关系,而区块链技术通过密码学和数学巧妙的分布式算法......
  • selenium操作浏览器
    浏览器的基本操作:1.浏览器前进操作:forward()在初始操作时,是不存在前进操作,一般与back配合使用;back后退操作(当前对象必须存在上下文)2.浏览器的最大化、最小化、全屏:3.浏......