浏览器,就是可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件
以我个人的理解,就跟QQ微信等通讯工具一样,不同的是QQ微信交互的主要是图文信息,而浏览器不同,它的
主要功能是各种类型的资源的交互,如图文,音频,文档等等,一般在网上浏览时秀兰器会向服务器发出请求,
然后由浏览器的窗口展示从服务器发出的资源,也就是您选择的网络资源。
浏览器的主要由各种组件构成,具体如下:
1.用户界面:就是用户所看到的网页界面,除了用来显示用户所请求页面的主窗口,其他部分都是用户界
面。
2.浏览器引擎:用来查询并操作渲染引擎的接口,可以理解为一个过渡组件。
3.渲染引擎:用来显示用户请求的资源内容,通俗点讲就是形成用户所浏览网页的例如图文,文档等等,
它的工作原理是先通过网络获得所请求文档(如HTML)的内容,然后解析HTML,将标签转化为内容树中的
dom结点,然后再解析css文件及style标签中的样式信息,并构建另一棵树--render,render树主要包含有各种数
据的属性,如颜色大小等;等render树构建好之后,会执行布局过程,也就是形成用户所看到的网页的布局效果,
然后进行绘制,即遍历render树,最后使用UI后端层绘制每个节点。
需要注意的是,这个过程是逐步完成的,为了更好地用户体验,渲染引擎不是等所有数据资源全部解析完
成后再构建和布局,这个效果我们一般在网络较差时经常遇到,用户界面只出现了布局而没有具体内容或者内容
不完善等
例如这个淘宝页面,出现的灰绿色的那一块,就是这个效果的体现。
4.网络:用于网络调用,为所有平台提供底层实现,如果把网络资源比作货物,网络就是运输它们的工具
5.UI后端:用于绘制基本的窗口小部件,具有不特定于某个平台的通用接口,比如组合框和窗口。
6.js解释器: 用于解析和执行 JavaScript 代码。
7.数据存储:属于持久层,浏览器需要在硬盘中保存各种数据,例如cookie等,以我的理解,应该是存储
的网页的基本信息,这样当我们再次打开此网页时速度会比第一次打开快很多,提升用户的体验感。