热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浏览器内核、JS引擎、页面显现道理及其优化

浏览器内核又叫衬着引擎,重要担任HTML、CSS的剖析,页面规划、衬着与复合层合成。浏览器内核的差别带来的重要问题是对CSS的支撑度与属性表现差别。webkitWekbit是一个开

浏览器内核又叫衬着引擎,重要担任 HTML、CSS 的剖析,页面规划、衬着与复合层合成。浏览器内核的差别带来的重要问题是对 CSS 的支撑度与属性表现差别。

webkit

Wekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。Apple的Safari, Google的Chrome, Nokia S60平台的默许浏览器,Apple手机的默许浏览器,Android手机的默许浏览器均采纳的Webkit作为器浏览器内核

Blink

Blink是在Wekbit的基础上的革新,是现在对新特征支撑度最好的内核

Gecko

Firefox

Trident

微软的IE,IE4+ 的内核,一向延续到 IE11,EdgeHTML 是微软扬弃 IE 后开辟的全新内核

webkit构成

  • webkit 包括了很多差别平台对webkit封装的完成,即笼统出了与浏览器所能直接对应的一些观点的完成。如,WebView, WebPage, WebFrame等
  • WebCore 完成了对文档的模子化,包括了CSS,DOM,Render等的完成
  • Javascript Core 对Javascript支撑的完成

浏览器内核与 JS 引擎一览

《浏览器内核、JS 引擎、页面显现道理及其优化》

Javascript 引擎

Javascript 担任 Javascript 代码的诠释与实行,主流的 Javascript 引擎有:V8、SpiderMonkey、JavascriptCore、Chakra。

页面显现道理

一个页面的显现,大略的说会经由以下这些步骤:

1. DOM 树的构建(Parse HTML)
2. 构建 CSSOM 树(Recaculate Style) 为何是 Re-caculate Style 呢?这是由于浏览器自身有 User Agent StyleSheet,所以终究的款式是我们的款式代码款式与用户代办默许款式掩盖/从新盘算获得的。
3. 兼并 DOM 树与 CSSOM 树为 Render 树
4. 规划(Layout)
5. 绘制(Paint)
6. 复合图层化(Composite)图层化是本身明白后抽象的意译个中规划(Layout)环节重要担任各元素尺寸、位置的盘算,绘制(Paint)环节则是绘制页面像素信息,合成(Composite)环节是多个复合层的合成,终究合成的页面被用户看到。

  • 当碰到 Javascript 剧本或许外部 Javascript 代码时,浏览器便住手 DOM 的构建(壅塞 1)

那是不是停下 DOM 的构建的同时,立马就实行 Javascript 代码或许下载外部剧本实行,实在照样要视情况而定,见2

  • 当碰到 标签须要实行剧本代码时,浏览器会搜检是不是这个 标签以上的 CSS 文件是不是已加载并用于构建了 CSSOM,假如 上部另有 CSS 款式没加载,则浏览器会守候 上方款式的加载完成才会实行该 内的剧本(壅塞 2)
  • DOM 树与 CSSOM 树的胜利构建是背面步骤的基础(同步壅塞)
  • 同时外部剧本、外部款式表的下载也是消耗时候较多的点

CSS剖析器

Javascript 担任 Javascript 代码的诠释与实行,主流的 Javascript 引擎有:V8、SpiderMonkey、JavascriptCore、Chakra。

页面显现道理

CSS范例定义了css的词法及语法文法。

这个构造鄙人面的定义中正式的定义了:

ruleset
: selector [ ',' S* selector ]*
'{' S* declaration [ ';' S* declaration ]* '}' S*
;

这说明,一个划定规矩鸠合具有一个或是可选个数的多个选择器,这些选择器以逗号和空格(S示意空格)举行分开。每一个划定规矩鸠合包括大括号及大括号中的一条或多条以分号离隔的声明。声明和选择器在背面举行定义。

Webkit CSS剖析器(Webkit CSS parser)

Webkit运用Flex和Bison剖析天生器从CSS语法文件中自动天生剖析器。回想一下剖析器的引见,Bison建立一个自底向上的剖析器,Firefox运用自顶向下剖析器。它们都是将每一个css文件剖析为款式表对象,每一个对象包括css划定规矩,css划定规矩对象包括选择器和声明对象,以及其他一些相符css语法的对象。


推荐阅读
  • 媒介这里大部份是本身碰到过的状况,另有一部份自创了偕行的文章,假如人人有碰到别的坑,迎接提出来一同研讨。学问要点1.Meta标签1.制止用户缩放页面,页面强迫让文档的宽度与装备的宽 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 定义Function类型:1functionsum(num1,num2){return num1+num2;}2varsumfunction(num1,num2){returnn ... [详细]
  • 2017-09-07前端日报精选JavaScriptEventLoop机制详解与Vue.js中实践应用Redux基础与实践如何用js获取虚拟键盘高度?( ... [详细]
  • 绑定完成的汗青绑定的基础是propertyChange事宜。怎样得知viewModel成员值的转变一直是开辟MVVM框架的主要题目。主流框架的处置惩罚有一下三大类:别的开辟一套AP ... [详细]
  • Node.js 事宜轮回事情流程 & 生命周期
    本文,将会细致的解说node.js事宜轮回事变流程和生命周期一些罕见的误会在js引擎内部的事宜轮回最罕见的误会之一,事宜轮回是Javascript引擎(V8,spiderMonke ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 深入解析 OpenSSL 生成 SM2 证书:非对称加密技术与数字证书、数字签名的关联分析
    本文深入探讨了 OpenSSL 在生成 SM2 证书过程中的技术细节,重点分析了非对称加密技术在数字证书和数字签名中的应用。非对称加密通过使用公钥和私钥对数据进行加解密,确保了信息传输的安全性。公钥可以公开分发,用于加密数据或验证签名,而私钥则需严格保密,用于解密数据或生成签名。文章详细介绍了 OpenSSL 如何利用这些原理生成 SM2 证书,并讨论了其在实际应用中的安全性和有效性。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 字节码开发笔记:深入解析与应用技巧 ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • iOS9中的WebKit 与 Safari带来的惊喜
    iOS9中的WebKit与Safari带来的惊喜-每个用过UIWebView的iOS开发者对其诸多的限制和有限的功能也深有感触。悻然,自iOS8推出WebKit框架后将改变这一窘境 ... [详细]
author-avatar
php小学生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有