WebKit技术内幕

朱永盛
前言随着HTML5的快速发展和和网络时代的到来,Web的接入口——浏览器越来越重要,而作为浏览器的内核——渲染引擎也变成了热门话题。自笔者接触HTML5技术和浏览器以来,深深地被这一包含众多非凡技术的新领域所吸引,并由此产生了很多疑问,为此,我开始了漫长的学习和研究WebKit(及Blink)渲染引擎和Chromium浏览器的征程。虽然WebKit项目本身非常复杂,但是其简单的代码结构、清晰的逻辑给我留下了深刻的印象,因为在这些复杂技术的背后,竟然也可以使用良好的设计去解决技术的复杂性。而基于WebKit的Chromium项目更是将众多大胆的新技术引入到了浏览器领域,让人耳目一新。WebKit是一个非常成功的项目,它不仅仅是个渲染引擎,而且成功地推动了网络的发展。基于WebKit渲染引擎的浏览器项目Chromium,更是成为率先支持HTML5功能和创新新功能的标杆。要完整理解一个Web渲染引擎和浏览器并不容易,因为它们的确包含了众多复杂的功能。据笔者的统计,WebKit项目和Chromium项目(不包括该项目依赖的众多第三方项目)的代码量都在500万行以上,而这些代码很多并没有完善的文档,所以理解这些技术背后的工作原理还是非常困难的。随着学习的深入,笔者发现目前对于整个渲染引擎的分析和文档化还处于一个缺失的状态。同时,因为渲染引擎和浏览器包含了太多的技术,让人有点应接不暇的感觉。虽然WebKit项目代码结构简单,但是由于文档的缺失,爱好者对于每一项新技术,也经常有不知从何下手的感觉。为此,笔者结合自身的理解,通过这本书系统性地分析这一领域的众多技术,希望能帮助读者快速度过迷茫的时期。本书的读者本书主要是为Web爱好者准备的一本书,主要针对Web前端开发者、浏览器开发者、Web平台开发者和其他一切对HTML5技术、WebKit渲染引擎和Chromium浏览器的工作原理感兴趣…