vlambda博客
学习文章列表

【HTML】第01篇 网页与浏览器

1、什么是网页

网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。那么网页是如何形成的呢?

简单地说,网页就是一个个由尖括号定义的特殊标记,所编写出来的HTML文件,通过浏览器打开就看见了网页中的内容,当然这只是粗论而已。后续我么再详细说明。


2、了解浏览器

对于网页的浏览和加载,是需要建立在浏览器的基础上的,也就是说没有浏览器就无法查看网页。所以浏览器是网页显示、运行的平台,常用的浏览器有:IE、火狐(Firefox)、谷歌(Chrome)、Safari和Opera等。


【HTML】第01篇 网页与浏览器


3、浏览器的组成

浏览器可以分为两部分:shell+内核。

Shell:是指浏览器的外壳:例如菜单,工具栏 等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。

内核:是基于标记语言显示内容的程序或模块。


4、浏览器内核的组成

浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
浏览器内核可以分成两部分:
1)渲染引擎(layout engineer或者Rendering Engine)
2)JS引擎。

4.1、渲染引擎

负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。


4.2、JS引擎

解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎

5、浏览器内核的分类

5.1、渲染引擎

主流浏览器使用的内核如下:

  • Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等

  • Gecko内核  :Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等

  • Presto内核 :Opera7及以上

  • Webkit内核:Safari,Chrome等



Trident又称MSHTML,是微软开发的渲染引擎(包含了Javascript引擎JScript),他已经深入了Windows操作系统的骨髓,例如Windows Media Play,Windows Explorer,Outlook Express等都使用了。目前很多浏览器都使用这个引擎,例如IE,Maxthon(最新版已经不使用)等。

Gecko是C++开发的,OpenSource的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox。

Webkit是苹果公司基于KHTML开发的。他包括Webcore和JavaScriptCore(SquirrelFish,V8)两个引擎。主要的使用者有Safari,Chrome。

Presto由OperaSoftware公司开始的,用于Opera的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。


5.2、JS引擎

JS全称JavaScript,最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMAScript标准。他的起源并不是如《Javascript高级程序设计》书中所述,是Brendan Eich自主发明的。(参考aimingoo的考证文章)JavaScript在浏览器的实现中还必须含有DOM和BOM。Web浏览器一般使用公共API来创建主机对象来负责将DOM对象反射进JavaScript。



6、 浏览器内核的优缺点

Trident:这种浏览器内核是IE浏览器用的内核,因为在早期IE占有大量的市场份额,所以这种内核比较流行,以前有很多网页也是根据这个内核的标准来编写的,但是实际上这个内核对真正的网页标准支持不是很好,甚至在2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节,同时 Trident 内核本身的BUG比较多,对一些符合W3C标准的网页代码支持不是很好,这在早期的IE版本中比较明显,比如IE5.5以前(包括IE5.5),其实IE6对W3C标准的支持也不是很好,而我们现在很多人都在使用IE6,事实上它也属于一个比较早的版本。但是由于IE的高市场占有率,微软也很长时间没有更新Trident内核,这导致了二个结果
1)Trident内核和W3C标准脱节。
2)Trident内核的大量Bug等安全问题没有得到解决,加上一些专家学者公开自己认为IE浏览器不安全的观点,使很多用户开始转向其他浏览器,FF,Opera就是这时期兴起的。

Gecko:这是Firefox 和 Flock 所采用内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。

Presto:Opera 采用的是 Presto内核,Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。

Webkit:Webkit 是 Safari 采用的内核,不过 Safari 是苹果系统下的浏览器(虽然也有windows版,但是比较少),所以只简单介绍一下这个内核的优点和缺点,优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。