【问题标题】:WebIDL in Firefox browser / OSFirefox 浏览器/操作系统中的 WebIDL
【发布时间】:2014-03-10 14:51:57
【问题描述】:

据我所知,

WebIDL 的播放规则与 DOM 相同。

原始 DOM(在 WebIDL 之前)是由 OMG IDL 创建的。但是,此 IDL 未指定用于 Javascript。

因此,W3C 创建了 webidl,它是 OMG IDL 的一个子集,它为 JS 创建 API 提供了比以前更大的灵活性。

如果我在这里不正确,请告诉我。

以下是我的问题:

  1. DOM 提供给 JS 开发者访问标记语言。 WebIDL 是否像 DOM 一样? 是否为 JS 开发者提供访问标记语言的接口? WebIDL 会做其他事情吗?

  2. WebIDL 在 Firefox 浏览器和 b2g (Firefox OS) 中播放不同的规则吗?

  3. 为什么使用webidl后系统性能更好?

  4. 对于DOM,代码流应该是Javascript--->DOM--->HTML 对于 WebIDL,这个流程会改变吗?还是WebIDL可以直接访问C++代码?

  5. 我可以使用 WebIDL 创建访问 CSS 的接口吗?

  6. JS语言绑定附录

感谢回复

【问题讨论】:

    标签: firefox browser firefox-os b2g


    【解决方案1】:

    WebIDL 不是 DOM 的替代品。相反,它是一种用于指定 API 的语言,包括最新版本的 DOM API 以及其他最新的网络标准。

    DOM4 标准包含其定义的所有接口和类型的 WebIDL 代码。例如,看看WebIDL definition of the DOM ParentNode interface。它只是列出此接口的属性和方法的一种格式。 IDL 列出了每个方法的名称、它的返回类型和参数,以及一些关于它的其他信息。当您编写document.body.childElementCount 时,您正在访问一个 DOM API,您可以阅读 DOM 标准中的 WebIDL 代码以了解该 API 将返回什么类型的数据。

    如果您是 Web 开发人员,WebIDL 根本不会改变您编写代码的方式,也不一定会改变浏览器运行代码的方式。这只是浏览器开发人员以标准、独立于语言的方式指定接口的一种方式。

    “附录”(“附录”的复数形式)是附加在主要内容之后的文档部分或章节。 “JS 语言绑定附录”是对 IDL 规范的补充,它定义了 IDL 接口在被 JavaScript 程序访问时的外观。

    【讨论】:

    • 嗨,马特,感谢您的回复。通过阅读您的帖子,我还有一些进一步的问题让我感到困惑。 1.再具体一点,我能说在DOM 4之前,有些DOM是用OMG IDL写的,有些是用WebIDL写的。 DOM4之后, 2. 由于WebIDL是一种用于访问标记语言的IDL语言,它如何与C++代码一起工作? 3. 你能提供一个关于 JavaScript 附录的例子吗?谢谢!
    • 1.我不知道 W3C 规范从 OMGIDL 迁移到 WebIDL 的确切时间,我怀疑它发生在不同时间的不同规范。 2. 在 Gecko 中,WebIDL 处理器读取 IDL 文件并为 JavaScript 和 Gecko 内部 C++ 代码生成bindings。 3.DOM Level 3 Core Appendix H.
    • 关于你回复的point2,所以WebIDL在浏览器和操作系统中的行为不同?你能解释一下为什么 WebIDL 比原来的 IDL 有更好的性能吗?
    • 再次重申,WebIDL 和 OMGIDL 不是编程语言。您不会“运行”用 IDL 编写的代码。它们是规范语言,用于记录 Web 标准。他们没有“性能”。它们不会像浏览器或操作系统中的任何东西一样“行动”。唯一使用 WebIDL 和 OMGIDL 的程序员是像我这样构建 Web 浏览器的开发人员,他们必须将 IDL 中指定的接口转换为用 C++ 或 JavaScript 编写的实现代码。只有 C++ 或 JS 实现代码在您的计算机上实际运行。 IDL 仅在构建时使用,而不是在运行时使用。
    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多