2010-04-28 80 views
8

JavaScript和DOM有什麼區別? DOM與Firefox相關嗎? DOM只是HTML元素的源碼順序嗎?JavaScript和DOM有什麼區別?

+4

當我看到這樣的問題時,我可以告訴用戶有很多問題並沒有太多答案。他可能根本不在乎答案。 – 2010-04-28 03:17:49

+0

@BlueRaja綠色獨角獸 - 你的意思是「他可能根本不在乎答案。」? – 2010-04-28 03:19:54

+12

他暗示,由於你提出了600多個問題,而且只能接受〜340,所以你問的是這種問題的名譽,而不是你的實際知識。有一個問題需要回答像你這樣的差距(並快速看一些問題),我傾向於同意。 – 2010-04-28 04:15:01

回答

22

DOM代表Document Object Model,正如您從名稱中猜出的那樣,它以獨立於平臺/瀏覽器的方式表示HTML/XML文檔的結構。 DOM還提供了一個API來操作DOM,其功能如getElementsByTagNamecreateElement

JavaScript是一種Web瀏覽器可以執行的編程語言。 JavaScript可以通過DOM scripting與DOM交互。

編輯回答你的問題的評論:例如,瀏覽器下載HTML以及任何引用的JS和CSS(和圖像,Flash等)。瀏覽器從HTML中構建DOM,並使用CSS中指定的規則呈現它。 JS可能會在頁面加載時,用戶做某事時,或者發生其他任何其他event時操縱DOM。當DOM更改瀏覽器更新顯示內容時。

+0

因此,Javascript和DOM腳本是不同的東西? – 2010-04-28 03:06:20

+0

@ metal-gear-solid您使用JavaScript來完成DOM腳本。 DOM腳本是當你用JavaScript操縱DOM時。 – 2010-04-28 03:10:21

+0

你能解釋一個簡單的瀏覽器,DOM和Javascript的例子關係嗎? – 2010-04-28 03:11:36

1

簡而言之,JavaScript允許您操縱控制客戶端腳本的DOM AKA Document對象模型。

+0

因此,DOM是每個瀏覽器的一部分? – 2010-04-28 03:20:59

+0

@ metal-gear-solid。不一定,但所有主流瀏覽器都試圖實現。有時候實現是不完美的。 DOM假定底層內存模型將映射到樹結構,其中除根外的每個節點都將具有單個父節點。這在IE中並不總是如此。 – Alohci 2010-04-28 08:21:48

+0

如果我錯了,請糾正我。根據我讀過的論壇和評論,DOM就像一個想法?我的意思是像Subversion,你可以用不同的方式進行顛覆,例如GIT和SVN。而對於DOM,您可以使用javascript來操作html元素。 – eurica 2014-01-24 06:59:19

1

MDC DOM

文檔對象模型(DOM)是HTML和XML文檔的 API。它 提供了結構表示 的文檔,使您能夠 修改其內容和視覺 演示文稿。從本質上講,它連接 網頁以腳本或編程 語言

雖然JavaScript是一種編程語言,這將讓你在DOM操作對象

希望清除它

+0

CSS選擇器也適用於DOM,對嗎? – 2010-04-28 03:29:04

+0

@ metal-gear-solid - 編號DOM是一個API。 CSS選擇器不使用該API。 – Alohci 2010-04-28 08:08:56

8

正如其他已經說過,DOM(D Ovenment O bject M odel)實質上是用來操縱HTML(或XML)文檔的API - 通常是使用JavaScript,因爲這是我們在瀏覽器中使用的語言,但並非總是如此,因爲在服務器端或桌面上以其他語言操作這些文檔的DOM類API,例如:http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html

JavaScript只是一種編程語言。它恰好是大多數(如果不是全部)Web瀏覽器的事實上的標準腳本語言,所以在實踐中,大多數時候當你編寫DOM操作腳本在客戶端運行時,你正在使用DOM和JavaScript在同一時間。

但是,它不一定要那樣。有人可能會寫編寫一個web瀏覽器(或者一個網頁瀏覽器的插件),讓程序員用Python,Ruby,C,Scheme等編寫他們的DOM操作腳本(實際上,JavaScript是作爲一種Scheme開始在Netscape中生活的)。

此外,JavaScript解釋器(甚至編譯器)完全在Web瀏覽器之外運行。事實上,如果您想了解核心JavaScript語言是什麼,您可以嘗試使用Mozilla的Rhino做一些腳本:http://www.mozilla.org/rhino/。默認情況下,沒有默認的DOM,沒有窗口對象,也沒有與瀏覽器相關聯(儘管您可以導入一些Java DOM包)。我還推薦閱讀MDC(http://developer.mozilla.org/en/Core_JavaScript_1.5_Guide)及其DOM(http://developer.mozilla.org/en/DOM)上的一些材料的舊JavaScript 1.5規範。

+0

+1感謝這個有用的信息 – 2010-04-28 03:34:35