webkit的前因后果:
webkit是一种浏览器引擎,Chrome和safari浏览器的内核。所谓浏览器引擎,其主要工作就是对html文件的解析和JS的执行,同时也可以提供一些工具,例如,调试工具firebug的内部实现。随着“云”的炒作,和通信技术的发展,浏览器已经不传统的浏览器了,可以看到网页中的各种应用程序,game,video等这些东西其实都可以移植到浏览器中运行,而不需要在本地存储和运行。随着智能手机的发展,PC机的位置也逐渐被取代了,由于手机上的限制(存储容量不大,软件安装不方便等),使得浏览器中的各种应用成为新宠,webkit类似的浏览器内核,也逐渐像webOS的概念过度。乔布斯的一个理念:把网页做成应用程序,并把网页中的各种信息来源分类,也变成各种应用。牛人!!
WebKit,WebCore和JavaScriptCore:
如之上所说,webkit作为一种浏览器内核,其主要任务就是html文件的解析和JS的执行。N多的代码完成了这些功能,而从总体上看,webkit的代码可以分为三个大的部分:WebKit,WebCore和JavaScriptCore。
WebKit:属于webkit内核的上层,主要是封装的任务。如何封装成真正的浏览器,由他完成,其中包含了对Frame,Page,Document,这些主要类的组合和封装。以gtk的封装为例,它封装了一个webview类,里面封装了Page,和Frame。
WebCore:webkit的核心,可以从“Core”这四个字母中看出它的位置。WebCore中定义了各种类,并实现了浏览器应该完成的各种功能。之上所说的Page,Frame,Document都是在WebCore中定义和实现的。网页中的JS代码会使用到很多的类,这些类都是在WebCore中定义的。
JavaScriptCore:完成对html文件中JS的解析和执行。网页的功能发生根本性的变化,决定于浏览器对JS的支持,这也就是JavaScriptCore的功劳。完成了对html文件中的JS代码的执行。例如:document.write(window.localStorage),这一句JS代码会经过JavaScriptCore的处理,把这句代码映射到WecCore中对应C++代码执行,最终完成它应有的功能。
这些都是对webkit的基本介绍,后续会继续学习和更新。