浏览器基础概念:
(1)浏览器(browser application)是专门用来访问和浏览页面并让用户与其可以交互的的客户端软件,在的计算机时代作用也是不可估量
(2)浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源
(3)目前我们经常使用的浏览器有五个:Internet Explorer、 Firefox、 Safari、 Chrome 和 Opera。
浏览器的主要构成
(1)用户界面 - 包括地址栏、 前进/后退按钮、 书签菜单等。
(2)浏览器引擎 - 在用户界面和呈现引擎之间传送指令。
(3)渲染引擎 - 负责显示请求的内容。 如果请求的内容是 HTML,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上。
(4)网络 - 用于网络调用,如 HTTP 请求。 其接口与平台无关,为所有平台提供底层实现。
(5)用户界面后端 - 用于绘制基本的窗口小部件,比如组合框和窗口。 其公开了与平台无关的通用接口,而在底层使用操作系统的用户界面方法。
(6) JavaScript 解释器 - 用于解析和执行 JavaScript 代码。
(7)数据存储 - 这是持久层。 浏览器需要在硬盘上保存各种数据,例如 Cookie。 新的 HTML 规范(HTML5) 定义了“网络数据库” ,这是一个完整的浏览器内数据库。
浏览器运行原理
1. 渲染引擎
渲染引擎解析HTML文档,并将文档中的标签转化为DOM节点树,即” 内容树” 。 同时,它也会解析外部CSS文件以及style标签中的样式数据。 这些信息被用于构建另一棵树——” 渲染树(Render树)” 。 接下来对渲染树进行排版布局,再下一步就是绘制(painting),即遍历render树,并使用UI绘制每个节点。
渲染引擎解析:
解析一个文档即将其转换为具有一定意义的结构——编码可以理解和使用的东西。 解析的结果通常是表达文档结构的节点树,称为解析树或语法树。
2. JS引擎
JS引擎是一个专门处理JS脚本的,专门设计来解释和执行的 JavaScript 代码。 JS引擎会加载你的源代码,把它分解成字符串,把这些字符串转换成编译器可以理解的字节码,然后执行这些字节码。不同浏览器有不同的JS引擎 ,不同浏览器的js引擎