Google Blink(新的WebKit分支):“将DOM移入Javascript”的含义?


12

眨眼博客

最后,我们想探索更大的想法,例如将整个文档对象模型(DOM)移入JavaScript。

这是什么意思?这是否意味着WebKit的DOM当前使用JavaScript编码,而是使用其他某种语言编码?这是否意味着他们要向DOM公开更多的公共访问者?还是什么?

Answers:


14

我阅读它的方式有两个选择。但是在研究这个问题之前,您必须了解旧模型的工作原理。

在大多数(如果不是全部)HTML呈现引擎实现中,DOM是用C或C ++实现的,而JavaScript引擎是将绑定导出到DOM的附加组件。如果您查看HTML和JavaScript的演变方式,这是有道理的。但是浪费大量时间来整理从JavaScript到C / C ++以及从JavaScript进行的调用。

第一种选择是DOM与JavaScript引擎的绑定更加紧密。基本上,DOM对象成为核心的JavaScript对象,例如Array。除了减少了一些封送处理之外,这没有什么用,因为DOM使用JavaScript引擎中的本机数据类型。DOM仍然可以用C或C ++实现。

第二个选项(可能是它们的意思)是,实际的DOM是用JavaScript实现的。不利之处是对DOM的访问已得到完全解释,但从好的方面来说,它消除了任何封送处理。这可能是净收益,因为无论如何DOM主要都是数据。

再说一次,我不能给您确切的答案-我不在Google工作,因此没有太多的见识。


1
与JavaScript引擎的“本机”类型相比,我认为绑定特殊类型没有任何开销,因为该引擎是用C ++编写的,并且所有类型都使用相同的机制实现。使用本机JavaScript类型可以节省的代码是代码,因为本机类型和DOM类型需要重复很多代码。
2013

据我所知(例如,从es-discuss邮件列表中),绝对是后者。有一个愿望都写在JS DOM,而不仅仅是编组成本(其中,因为在那里),也为消除尽可能多的“外来的”,“非天然”,“特”,从语言空间物体作为可能。DOM对于语言设计师来说是很大的PITA,因为它很特殊。
herby 2013年

有关于这一主题设计文档最近docs.google.com/document/d/...
subbul
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.