什么是浏览器内核
要想搞清楚浏览器内核是什么,首先应该搞清楚浏览器的构成是怎样的。简单来说浏览器可以分为两部分: shell + 内核。其中 shell 的种类相对较多,内核则 较少。shell 是指浏览器的外壳:如菜单,工具栏等。主要是提供给用户界面操作,参数设置等等;内核则是一些基于标记语言显示内容的程序或模块,它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(如加入CSS)、计算网页的显示方式、然后输出至显示终端或打印机并解释执行客户端脚本。在浏览器中,shell 通过调用内核来实现各种功能的。所以内核才是浏览器的核心,它的功能如何就决定了浏览器的特点和表现如何。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。这就是了解浏览器内核对前端开发人员的意义所在。
浏览器内核又可以分成两部分:JS 引擎和渲染引擎(layout engineer或者Rendering Engine)。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS 引擎负责解析并执行 Javascript 语言,以此实现网页的动态效果;渲染引擎则负责 JS 引擎以外的其它内核功能。最开始渲染引擎和 JS 引擎并没有很明确的区分,随着 JS 引擎越来越独立,人们所说的浏览器内核就仅指浏览器的渲染引擎了。
浏览器内核的分类
浏览器内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核有以下四种:
1、Trident
2、Gechko
3、Presto
4、Webkit
一、Trident
Trident 又称 MSHTML,是微软开发的 IE 浏览器内核。它由于被包含在全世界使用率最高的操作系统Windows中,因此拥有极高的市场占有率。这也导致很多其它浏览器都使用这个引擎,例如 QQ浏览器,Maxthon(最新版已经不使用)、360 和搜狗浏览器等。但额外需要知道的是 QQ浏览器,Maxthon 和搜狗浏览器均是双核浏览器,了解这点对这些平台上的开发很有帮助。
由于这种内核比较流行,以前的很多网页都是根据它的标准来编写的。实际上这个内核对网页标准支持不是很好,甚至在2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节。同时 Trident 内核本身的 BUG 比较多,对一些符合 W3C 标准的网页代码支持不是很好。这在早期的 IE 版本中比较明显,比如IE5.5以前(包括IE5.5)。其实IE6对W3C标准的支持也不是很好,而我们现在仍然有相当一部分人在使用IE6,事实上它也属于一个比较早的版本。
二、Gechko
Gecko 是用 C++ 编写的开源渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有 Firefox、Netscape 和 Flock 等。这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口。同时它还是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。但是代价是也显而易见的,就是要消耗很多的资源,比如内存。
三、Presto
Presto 由 Opera Software 公司开始的,用于 Opera 浏览器的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了 Presto 内核。
Presto 是一个动态内核,页面的全部或者部分可随着 DOM 及 Script 语法的事件而重新解析。Presto 内核附带的 JS 引擎被称为公认的浏览网页速度最快的,这得益于它在开发时的天生优势,在处理 JS 脚本等脚本语言时,会比其他的内核快3倍左右。缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。此外,由于 Presto 是商业引擎,使用它的除开 Opera,就只剩下 NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等少数几个了,很大程度上限制了 Presto 的发展。
四、Webkit
Webkit 是一个基于 KHTML(是HTML网页排版引擎之一,由KDE所开发) 开发的开源项目,包含了来自 KDE 项目和苹果公司的一些组件,以及 Webcore 和 JavaScriptCore(SquirrelFish,V8)两个引擎,主要用于Mac OS系统。它主要的使用者有 Safari、Chrome。
Webkit 的特点在于源码结构清晰、渲染速度极快,虽然不及 Presto 但是也胜于 Gecko 和 Trident。缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。
分享到:
相关推荐
然而,对于大多数用户而言,“浏览器内核”这一概念可能较为陌生。实际上,浏览器内核对于浏览器的性能表现至关重要。本文旨在深入探讨浏览器内核的相关知识,帮助读者更好地理解其作用与重要性。 #### 二、浏览器...
本文将深入探讨H5 CSS Hack以及与浏览器内核的关系。 首先,我们要明白H5(HTML5)是HTML的最新版本,引入了许多新特性,如语义化标签、离线存储、媒体元素、拖放功能等,极大地提高了网页的互动性和用户体验。然而...
#### 一、浏览器内核概述 **浏览器内核**是指浏览器中的核心组件,它负责解析网页代码并呈现给用户。不同的浏览器可能采用不同的内核来实现这一功能。理解浏览器内核的工作原理对于开发高质量的Web应用程序至关重要...
在易语言中调用Edge浏览器内核,首先需要理解的是进程通信(Process Communication)的概念。因为浏览器是一个独立的进程,而你的易语言程序是另一个进程,所以你需要通过某种方式让它们之间进行数据交换。这通常...
总之,C#实现基于IE内核的简单浏览器实例是一个很好的学习平台,涵盖了Windows Forms开发的基础知识,WebBrowser控件的使用,以及事件驱动编程的基本概念。对于初学者而言,这是一个很好的起点,可以在此基础上扩展...
1. libcef.dll:这是Chromium Embedded Framework (CEF) 的动态链接库,用于实现浏览器内核,提供网页渲染和脚本执行等功能。 2. icudt.dll:这是国际化数据包,包含了多种语言和地区的字符集支持,确保浏览器在全球...
在20世纪90年代末到21世纪初,IE内核是全球最广泛使用的浏览器内核之一,因为它与Windows操作系统紧密集成。 描述部分提到,这个程序具备了基本的浏览器功能,包括后退、前进、刷新、停止和删除历史记录。这些是...
实现基于 wke 的浏览器内核 demo 中,js 和 c++ 的互调交互 C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的...
在本资源中,"vs2015下cef内核浏览器源码和样例代码(版本3.3396.1783)" 提供了在Visual Studio 2015环境下开发基于CEF的应用所需的源代码。这个版本号3.3396.1783代表CEF的一个特定稳定版本,g1856231可能指的是该...
首先,我们要理解`Qt`的核心概念。Qt是一个开源的、跨平台的应用程序开发框架,支持Windows、Linux、macOS、Android和iOS等操作系统。它提供了丰富的API,用于图形用户界面(GUI)设计、网络通信、数据库访问等。`Qt...
本资源涉及的是利用C#与WebKit内核来创建一个浏览器,这将使我们能够控制并显示网页的源代码。WebKit是一个开源的网页渲染引擎,被许多知名浏览器如Safari和早期的Chrome所采用,它提供了强大的网页解析和渲染能力。...
而网狐内核,通常指的是国内一些基于开源内核进行二次开发的浏览器内核,如腾讯的QQ浏览器、搜狗浏览器等,它们在原有的开源内核基础上进行了优化和定制,以适应中国用户的使用习惯和网络环境。 学习网狐内核组件,...
在深入讲解模块之前,先了解一下易语言的基本概念。易语言采用“所见即所得”的编程方式,其语法直观,如“打开文件”、“关闭窗口”等,使编程更贴近自然语言。它的基本结构包括程序、窗口、过程、函数和变量等。 ...
常见的浏览器内核有Google的Blink、Apple的WebKit、Microsoft的EdgeHTML等。而iTerminal浏览器采用的是国产自研内核,这表明开发者针对中国的网络环境和用户习惯进行了深度定制,可能在速度、稳定性、隐私保护等方面...
这一步骤涉及到事件驱动编程的概念,通过挂钩技术,我们可以在浏览器控件触发某些事件时,执行易语言编写的相应处理代码。例如,当网页加载完成、用户点击链接或者提交表单时,我们的程序可以得到通知并作出反应。这...
在Android应用开发中,Webview是一个非常重要的组件,它允许开发者在原生应用中嵌入一个基于WebKit的浏览器内核,使得用户可以在不离开应用程序的情况下浏览网页内容。本篇文章将详细探讨“webview嵌入浏览器”这一...
通过学习和分析“易语言多功能浏览器源码”,我们可以提升对易语言的掌握,理解网络通信、HTML解析等关键概念,并掌握如何利用易语言构建复杂的桌面应用程序。同时,这也是一种实践性的学习,有助于培养解决问题和...
3. 浏览器对象模型:了解浏览器对象的概念,如窗口、标签页、URL等,以及如何通过编程接口操作它们。 4. HTML解析:掌握基本的HTML结构,以便于定位和操作网页元素。 5. JavaScript交互:如果支持库允许,可能需要...
本文将深入探讨Android浏览器开发设计的核心概念、关键技术和实现步骤。 首先,我们要理解Android系统的架构,它是基于Linux内核的开源操作系统,为移动设备提供了丰富的应用程序框架。在开发Android浏览器时,我们...
首先,我们要理解“多窗口浏览器”的概念。多窗口浏览器允许用户在同一程序中同时打开多个网页,每个网页在一个独立的窗口中显示,提高了浏览效率,方便用户同时管理多个网页,例如对比不同网站的信息或进行多任务...