苹果公司今天在其邮件列表中宣布了他们的浏览器引擎 Webkit 的最新项目 Webkit2。Webkit2 的目标是实现独立进程与非阻断式API。基于 Webkit 的 Google Chrome 浏览器在 2008 年推出时就已经实现了独立进程功能,该功能可以防止因某个网页的崩溃而导致整个浏览器崩溃。
IE8 也有一个类似机制防止崩溃,而 Firefox 也正联合 Electrolysis 展开同样的开发。Mac 操作系统中的 Safari 4 则通过将 Flash 一类的插件放到单独的进程防止崩溃,Webkit2 则直接将这种能力内置到渲染引擎中。
Webkit2 的另一个目标是实现非阻断式 API,这意味着,开发者可以直接借助各种回调函数接收 Webkit 视图的消息。
比如,在一个程序中,假如我需要加载一个网页,我可以调用一个诸如 loadWebsite 的方法(只是举例),将 URL 参数传递给这个方法,接着,给它一个 Callback 函数或一段代码,在网页加载完成 后执行。
通过这种方法,每当 Webkit2 执行完某个操作的时候,开发者都可以通过 Callback 函数及时同它交互,这样,渲染引擎工作的时候,主进程可以继续做自己的事,渲染引擎完成工作会通过 Callback 函数通知并执行你预设的代码,让你的程序反应更敏捷。目前,有三种技术可以帮助实现这一目标,消息式客户 Callback,策略式客户 Callback 以及客户策略设置。还有第四方法,通过代码注入直接同 DOM 沟通,但这一方法目前还没有具体实施,苹果公司的 Anders Carlsson 在该项目的主页中对此做了详细阐述。
Webkit2 引擎最好的地方在于,任何基于 Webkit2 的产品都可以直接使用这些功能,而不必像 Google Chrome 那样自己解决,开发者借助 Webkit2 可以轻松实现更稳定的产品,目前支持 Webkit2 的平台包括 Windows 和 OS X,Linux 的支持尚提及。
本文来源:Ars Technica Inside WebKit2: less waiting, less crashing
中文编译来源:锐商企业CMS 网站内容管理系统 官方网站 |