2010-02-06 49 views
21

Sự khác nhau giữa hai loại là gì?Sự khác nhau giữa Mô hình đối tượng trình duyệt và Mô hình đối tượng tài liệu là gì?

+0

Tôi quan tâm đến sự khác biệt giữa các đối tượng nền tảng so với đối tượng trình duyệt (danh sách chọn danh sách thả xuống VS), nhưng điều này cũng thú vị. +1! – nocarrier

+0

[BOM] (http://intellectualpirates.net/web-150/lecture-4-debugging/) bao gồm [Window] (http://www.w3.org/TR/Window/) và [Navigator] (http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/guide/navobj.html) các đối tượng, được sử dụng để truy cập thông tin như [nút quay lại] (http: // www .hunlock.com/blogs/Mastering_The_Back_Button_With_Javascript) và [plugin status] (http://www.webreference.com/js/column20/mimetypes.html) không phụ thuộc vào tài liệu hiện tại được tải trên trang. –

Trả lời

25

Mô hình đối tượng trình duyệt đại diện cho mọi thứ được trình duyệt cung cấp bao gồm tài liệu, vị trí, lịch sử, khung và bất kỳ chức năng nào khác mà trình duyệt có thể hiển thị với JavaScript. Mô hình đối tượng trình duyệt không được tiêu chuẩn hóa và có thể thay đổi dựa trên các trình duyệt khác nhau.

Mô hình đối tượng tài liệu được chuẩn hóa và cụ thể cho tài liệu HTML hiện tại. Nó được hiển thị bởi Mô hình đối tượng trình duyệt (tức là DOM là tập con của BOM).

3

Câu trả lời của Sam là chính xác nếu bạn hiểu nghĩa đen của cả hai cụm từ.

Thực tế thuật ngữ "Mô hình đối tượng trình duyệt" không được sử dụng thường xuyên như DOM trong phát triển web và thuật ngữ DOM được sử dụng làm từ đồng nghĩa - ví dụ danh sách các trình cắm sẵn có, trong khi thuộc tính của "trình duyệt", không phải là "tài liệu", là một phần của DOM 0 - navigator.plugins API.

+0

Ngoài ra, nếu bạn mở tab "DOM" trong Firebug, bạn sẽ thấy đối tượng chung của JavaScript, thuộc về BOM và ít có liên quan đến DOM. – user123444555621

0

tôi nghĩ rằng BOM=DOM +(-) non standard properties of the browser. như vậy mỗi trình duyệt có BOM riêng của mình

11

BOM

Đây là một thuật ngữ không chính thức vì không có W3C hoặc tiêu chuẩn WHATWG đề cập đến nó.

Một định nghĩa đơn giản là BOM bao gồm toàn bộ cấu trúc đối tượng có thể truy cập thông qua tập lệnh trong trình duyệt, bắt đầu với đối tượng window có chứa mọi thứ khác, vì đó là đối tượng chung.

Đối tượng window chứa nhiều thuộc tính (hãy thử console.dir(window);). Các thuộc tính này được chỉ định trong nhiều tiêu chuẩn web. Đặc tả "cốt lõi" của đối tượng window hiện vẫn được chỉ định trong tiêu chuẩn HTML - see here, nhưng tôi đoán nó chỉ là vấn đề thời gian cho đến khi người chỉnh sửa quyết định chuyển đặc tả này thành một tiêu chuẩn riêng biệt. Tôi chắc chắn sẽ khởi động một chuẩn "BOM" hoặc "Môi trường trình duyệt" để làm cho mọi việc hợp lý hơn và phù hợp hơn.

DOM

Mặt khác là cụm từ chính thức. Bạn có thể tìm thấy các định nghĩa của thuật ngữ này trong các tiêu chuẩn khác nhau, ví dụ các DOM4 tiêu chuẩn quốc gia:

DOM là một vào ngôn ngữ và nền tảng giao diện trung lập cho phép các chương trình và các kịch bản để truy cập tự động và cập nhật nội dung và cấu trúc tài liệu.

Chú ý mức độ nhấn mạnh trên tài liệu. Không giống như BOM về cơ bản và thuật ngữ ô cho tất cả các API trong trình duyệt, DOM chỉ là các API xử lý các tài liệu.

Định nghĩa đơn giản là DOM được triển khai dưới dạng đối tượng document (là gốc của cây DOM btw). Về cơ bản, cây DOM (và mọi thứ bên trong nó) có thể được coi là một phần của DOM. Tương tự, mọi thứ ngoài DOM-tree không phải là một phần của DOM.

ngoài DOM cây == tất cả các thuộc tính của window trừ document đối tượng

+1

HTML5 đã mã hóa nhiều BOM như một đặc tả chính thức. Vì vậy, có một tiêu chuẩn (loại), mà tất cả các trình duyệt chính tuân theo. –

0

BOM là tầm nhìn rộng hơn của toàn bộ trình duyệt nơi như DOM được ristricted để ghi lại cửa sổ và phương pháp liên quan. xem bài viết đầy đủ javascript-browser-object-model

Các vấn đề liên quan