节温器厂家
免费服务热线

Free service

hotline

010-00000000
节温器厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

WebKit2发布转为多进程模型万芳

发布时间:2020-02-14 12:29:14 阅读: 来源:节温器厂家

WebKit2发布 转为多进程模型-CSDN.NET

摘要:来自Apple的开发者Anders Carlsson 在邮件列表中提到,他们这段时间一直在开发被称为’WebKit2‘的新WebKit框架

WebKit是著名的开源浏览器引擎,也是Chrome和Safari等主流浏览器的内核(Opera与Chrome的V8内核是基于WebKit开发的)。作为开源项目,它的开发主要由苹果公司主导。

近日,来自Apple的开发者Anders Carlsson 在邮件列表中发布了WebKit2,新版本完全重新设计,以支持类似于Chrome和IE8的多进程模型。这样在主流浏览器中,只剩下基于Gecko的Firefox和基于Presto的Opera还没有采用多进程。

采用这种模型,网页的内容(JavaScript,HTML,以及布局等)将各自拥有独立的进程。这一机制是通过两个主要的子系统(CoreIPC和DrawingArea)来支持的。这种模型和Google Chrome的最大不同在于,WebKit直接把独立进程模型放进了一个框架中,因此也能被其他客户端使用(事实上,历史上除了浏览器之外,苹果的邮件客户端和微软的个人信息管理软件都使用过WebKit内核)。

OSNews文章透露,从技术上说,Webkit的常规版本中没有进程边界,因为应用和渲染器在一个进程里,但是应用和WebKit API之间有API边界。而在Google Chrome/Chromium里,API边界之上还有进程边界,因此很难为其他WebKit实现所用。

按Webkit2维基的说法,Chromium WebKit并没有直接提供多进程框架,而是进行了精巧优化,本身只是多进程应用的一个组件,而由应用自己来负责代理和进程管理。由于负责进程管理、进程间代理和沙盒处理的关键逻辑都属于Chrome应用而非API层,所以重用非常困难。

而在WebKit 2中,在API边界之下还有进程边界,因此多进程浏览也成为API的一部分。同时,这也使WebKit 2与之前的版本不再兼容。

目前,WebKit2已有Mac和Windows平台版本,Carlsson表示,如果有其他开发者推出其他平台的移植版,他们将乐观其成。

另据Ars Technica的分析文章(翻译:锐商企业CMS网站内容管理系统),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 可以轻松实现更稳定的产品。

另请参考http://news.cnet.com/8301-30685_3-20002103-264.html。

美女图片

名言大全

裸体美女

情感故事