對 DOM 和 HTML (API) 之間的關係感到困惑 (Confused by relation between DOM and HTML (APIs))


問題描述

對 DOM 和 HTML (API) 之間的關係感到困惑 (Confused by relation between DOM and HTML (APIs))

DOM 和 HTML 有什麼關係?一個子集是另一個子集,一個比另一個更抽象嗎?HTML 是 DOM 的擴展嗎?或者它們是否描述了相當不相關的概念(僅與您可以從 HTML 轉換為 DOM 相關)?如果必須的話,你會如何在一張圖片中繪製這兩個?

例如,這些不同規格的目的是什麼。第一個和最後一個鏈接都包含有關 HTMLElement 的信息。

  1. http://www.w3.org/TR/2003/REC‑DOM‑Level‑2‑HTML‑20030109/
  2. http://www.w3.org/TR/2000/REC‑ DOM‑Level‑2‑Core‑20001113/ /ul>

    這是否意味著上面列表中的第三個鏈接擴展了第一個鏈接中描述的 DOM 核心?

    或者如果你實現了 DOM 核心,這允許您可以操作簡單的文檔,但是如果您實現 HTML,那會給您帶來像超級 DOM 一樣的東西,讓您可以操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我我想我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    /blockquote>

    這是否意味著上面列表中的第 3 個鏈接擴展了第 1 個鏈接中描述的 DOM 核心?

    或者如果您實現了 DOM 核心,它允許您操作簡單文檔,但是如果你實現 HTML,那會給你一個超級 DOM,讓你可以操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我猜我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    /blockquote>

    這是否意味著上面列表中的第 3 個鏈接擴展了第 1 個鏈接中描述的 DOM 核心?

    或者如果你實現了 DOM 核心,它允許你操作簡單文檔,但是如果你實現 HTML,它會給你一個超級 DOM,讓你可以操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我我想我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    這是否意味著上面列表中的第 3 個鏈接擴展了第 1 個鏈接中描述的 DOM Core?

    或者如果您實現 DOM Core,它允許您操作簡單的文檔,但如果您實現HTML,它給你像一個超級 DOM,允許你操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我我想我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    這是否意味著上面列表中的第 3 個鏈接擴展了第 1 個鏈接中描述的 DOM Core?

    或者如果您實現 DOM Core,它允許您操作簡單的文檔,但如果您實現HTML,它給你像一個超級 DOM,允許你操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我我想我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    第一個鏈接中描述了哪個?

    或者如果你實現了 DOM Core,它允許你操作簡單的文檔,但是如果你實現了 HTML,它會給你一個超級 DOM,讓你可以操作更多複雜的物體?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我我想我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    第一個鏈接中描述了哪個?

    或者如果你實現了 DOM Core,它允許你操作簡單的文檔,但是如果你實現了 HTML,它會給你一個超級 DOM,讓你可以操作更多複雜的物體?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我我想我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    允許您操作簡單的文檔,但是如果您實現 HTML,它會給您像超級 DOM 一樣允許您操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我猜我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    允許您操作簡單的文檔,但是如果您實現 HTML,它會給您像超級 DOM 一樣允許您操作更複雜的對象?

    最後,假設你想實現你自己的瀏覽器,它只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我猜我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    假設您想實現自己的瀏覽器,該瀏覽器只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我猜我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。

    假設您想實現自己的瀏覽器,該瀏覽器只能打開 HTML5 網站(渲染,以及支持 JavaScript)。閱讀第 3 個鏈接中的規範就足夠了,還是您首先需要實現 DOM 中提供的所有內容,然後再實現 HTML5 特定的東西?

    更新 我猜我想知道 DOM API vs HTML API vs DOM HTML API vs HTML DOM API。


    參考解法

    方法 1:

    HTML is text and the DOM is the in‑memory object model to represent the tree that the HTML described.

    方法 2:

    The HTML spec describes HTML in terms of a text document with a specific syntax. The DOM on the other hand describes the object‑model that the browser generates, when it parses the HTML document. But both specs kind of describe the same abstract model which is the elements and attributes of HTML.

    The DOM‑core is the object model that is common for all XML documents (including HTML) with elements and attributes. The HTML‑DOM is an extension of the core DOM with more specific interfaces for the various HTML elements.

    方法 3:

    In short:

    The HTML standards define the HTML language ‑ which tags / attributes exist and what they mean.

    The DOM standards define interfaces that are implemented by the objects from the DOM object tree in the browser. (The web‑browser parses the HTML source code and creates an object tree based on it. The objects in that tree have properties which are defined by DOM (and other) standards.)

    The HTML5 standard also defines interfaces for stuff that wasn't defined before ‑ like the window object, the navigator and history object, global functions like alert and prompt, timeout functions, etc.

    The different standards are not subsets of each other ‑ they are just distinct standards that define a piece of the whole picture.

    方法 4:

    Answered elsewhere, but apparently we're supposed to embrace (some) duplication:

    The document object model is the browser's internal representation of HTML. It's based on the idea of 'children'. So a <p> tag might contain several text nodes and several <span> tags, like this:

    <p><span>Hello,</span> this is some text. <span>It</span> is just a short paragraph</p>
    

    This <p> tag has 4 children: two <span>s, and two text nodes ( this is some text and is just a short paragraph). The other bits of text are children of their respective <span> tags.

    The browser stores this information (instead of just storing a huge stream of HTML, which is very difficult to process) in its internal memory. This makes it much easier to format it using Cascading Style Sheets (CSS) and to make changes to it using JavaScript (create and delete parts, move parts from one parent to another, etc).

    All versions of HTML (except perhaps very early ones) use the DOM. Each version has rules, such as which tags are valid, and which can be children to each element. These rules are implemented when processing the HTML and creating a DOM representation of it.

    (by KarolisLou FrancoJacquesBŠime VidasNathan MacInnes)

    參考文件

    1. Confused by relation between DOM and HTML (APIs) (CC BY‑SA 3.0/4.0)

#Browser #DOM #w3c #html






相關問題

讓 jQuery 與 Netscape 7 和 8 一起工作 (Getting jQuery to work with Netscape 7 and 8)

功能性 javascript 和網絡瀏覽器 javascript 版本 (Functional javascript and web browser javascript versions)

VB.NET - WebBrowser 附加標題 - 用戶代理覆蓋/取消其他標題? (VB.NET - WebBrowser Additional Headers - User Agent Overrides / Cancels Other Headers?)

無法在所有移動瀏覽器上居中 - 普通瀏覽器效果極佳 (Centering Not Possible On All Mobile Browsers - Normal Browser Works Superb)

在 SWT 瀏覽器小部件中獲取選定文本 (Getting a Selected Text In SWT Browser Widgets)

瀏覽器如何知道網頁發生了變化? (How does the browser know a web page has changed?)

iPhone/Android/BlackBerry 上的 jQuery (jQuery on iPhone/Android/BlackBerry)

對 DOM 和 HTML (API) 之間的關係感到困惑 (Confused by relation between DOM and HTML (APIs))

Firefox 5 - 無限循環處理 (Firefox 5 - infinite loop handling)

字符串或二進制數據將被截斷 (string or binary data would be truncated)

拖放圖片轉Base64 (Drag and drop image convert to Base64)

使用在瀏覽器中運行的 webgl 創建 GPU 密集型 Web 應用程序是否現實? (Is it realistic to create gpu-intensive web apps using webgl running in the browser?)







留言討論