1. DOM là gì?
DOM là viết tắt của Document Object Model (gọi việt hóa là mô hình đối tượng tài liệu) là một giao diện lập trình ứng dụng. Thông thường, DOM có dạng một cây cấu trúc dữ liệu, được dùng để truy xuất và thao tác trên các tài liệu dạng HTML và XML bằng các ngôn ngữ lập trình Javascript, PHP... Mô hình DOM hoạt động độc lập với hệ điều hành và dựa theo kỹ thuật lập trình hướng đối tượng để mô tả tài liệu
Trong đặc tả DOM, thuật ngữ "tài liệu" được sử dụng theo nghĩa rộng - ngày càng nhiều, XML đang được sử dụng như một cách đại diện cho nhiều loại thông tin khác nhau có thể được lưu trữ trong các hệ thống khác nhau và phần lớn điều này theo truyền thống sẽ được coi là dữ liệu hơn là tài liệu. Tuy nhiên, XML trình bày dữ liệu này dưới dạng tài liệu và DOM có thể được sử dụng để quản lý dữ liệu này.
Với Document Object Model, người lập trình có thể xây dựng tài liệu, điều hướng cấu trúc của chúng và thêm, sửa đổi hoặc xóa các phần tử và nội dung. Bất kỳ thứ gì được tìm thấy trong tài liệu HTML hoặc XML đều có thể được truy cập, thay đổi, xóa hoặc thêm bằng cách sử dụng Mô hình đối tượng tài liệu, với một vài ngoại lệ - đặc biệt, giao diện DOM cho các tập con bên trong và bên ngoài XML vẫn chưa được chỉ định.
Là một đặc tả W3C, một mục tiêu quan trọng đối với Document Object Model là cung cấp một giao diện lập trình tiêu chuẩn có thể được sử dụng trong nhiều môi trường và ứng dụng khác nhau. DOM được thiết kế để sử dụng với bất kỳ ngôn ngữ lập trình nào.
DOM là một API lập trình cho các tài liệu. Nó dựa trên một cấu trúc đối tượng gần giống với cấu trúc của các tài liệu mà nó mô hình hóa. Mỗi tài liệu chứa không hoặc một nút loại tài liệu, một nút phần tử gốc và không hoặc nhiều nhận xét hoặc hướng dẫn xử lý; phần tử gốc đóng vai trò là gốc của cây phần tử cho tài liệu. Tuy nhiên, DOM không chỉ định rằng các tài liệu phải được triển khai dưới dạng một cái cây hay một lùm cây, cũng như không chỉ định cách thực hiện các mối quan hệ giữa các đối tượng. DOM là một mô hình logic có thể được triển khai theo bất kỳ cách nào thuận tiện.
Cấu trúc của tài liệu SGML theo truyền thống được biểu diễn bằng mô hình dữ liệu trừu tượng, không phải bằng mô hình đối tượng. Trong mô hình dữ liệu trừu tượng, mô hình được tập trung xung quanh dữ liệu. Trong ngôn ngữ lập trình hướng đối tượng, bản thân dữ liệu được đóng gói trong các đối tượng ẩn dữ liệu, bảo vệ dữ liệu khỏi thao tác trực tiếp từ bên ngoài. Các chức năng liên quan đến các đối tượng này xác định cách các đối tượng có thể được thao tác và chúng là một phần của mô hình đối tượng.
Gợi ý: việc làm IT phần mềm
2. DOM và những điều “không phải”
Phần này được thiết kế để cung cấp hiểu biết chính xác hơn về DOM bằng cách phân biệt nó với các hệ thống khác có vẻ giống nó.
- Mặc dù Document Object Model bị ảnh hưởng mạnh mẽ bởi "HTML động", ở Cấp độ 1, nhưng nó không triển khai tất cả "HTML động". Đặc biệt, là các sự kiện vẫn chưa được xác định. Cấp độ 1 được thiết kế để tạo nền tảng vững chắc cho loại chức năng này bằng cách cung cấp một mô hình mạnh mẽ, linh hoạt của chính tài liệu.
- Mô hình Document Object Model không phải là một đặc tả nhị phân. Các chương trình DOM được viết bằng cùng một ngôn ngữ ràng buộc sẽ tương thích với mã nguồn giữa các nền tảng, nhưng DOM không xác định bất kỳ hình thức tương tác nhị phân nào.
- Document Object Model không phải là một cách tồn tại các đối tượng đối với XML hoặc HTML. Thay vì chỉ định cách các đối tượng có thể được biểu diễn trong XML, DOM chỉ định cách các tài liệu XML và HTML được biểu diễn dưới dạng các đối tượng, để chúng có thể được sử dụng trong các chương trình hướng đối tượng.
- Document Object Model không phải là một tập hợp các cấu trúc dữ liệu; nó là một mô hình đối tượng chỉ định các giao diện. Mặc dù tài liệu này chứa các sơ đồ thể hiện các mối quan hệ bao hàm, nhưng đây là các mối quan hệ logic được xác định bởi các giao diện lập trình, không phải là biểu diễn của bất kỳ cấu trúc dữ liệu nội bộ cụ thể nào.
- Các DOM không xác định thông tin nào trong tài liệu có liên quan hoặc cách thông tin trong tài liệu được cấu trúc. Đối với XML, điều này được chỉ định bởi Tập thông tin XML W3C. DOM chỉ đơn giản là một API cho tập thông tin này.
- Một Document Object Model bất chấp tên gọi của nó, không phải là đối thủ cạnh tranh với Mô hình Đối tượng Thành phần (COM). COM, giống như CORBA, là một cách độc lập với ngôn ngữ để chỉ định các giao diện và đối tượng; DOM là một tập hợp các giao diện và đối tượng được thiết kế để quản lý các tài liệu HTML và XML. DOM có thể được triển khai bằng các hệ thống độc lập với ngôn ngữ như COM hoặc CORBA nó cũng có thể được triển khai bằng cách sử dụng các liên kết dành riêng cho ngôn ngữ như liên kết Java hoặc ECMAScript.
Xem thêm: Developer là gì? Cơ hội nào cho lập trình viên chuyên nghiệp?
3. Nguồn gốc của Document Object Model là từ đâu
DOM có nguồn gốc như một đặc tả để cho phép các tập lệnh JavaScript và chương trình Java có thể di động giữa các trình duyệt Web. "HTML động" là tổ tiên ngay lập tức của Mô hình Đối tượng Tài liệu và ban đầu nó được nghĩ đến phần lớn về mặt trình duyệt. Tuy nhiên, khi Nhóm công tác DOM được thành lập tại W3C, nhóm này cũng được các nhà cung cấp trong các miền khác tham gia, bao gồm cả các trình soạn thảo HTML hoặc XML và kho tài liệu.
Một số nhà cung cấp đã nghiên cứu họ đã làm việc với SGML trước khi XML được phát triển; kết quả là DOM đã bị ảnh hưởng bởi SGML Groves và tiêu chuẩn HyTime. Các nhà cung cấp cũng đã phát triển các mô hình đối tượng của riêng họ cho các tài liệu để cung cấp API cho các trình soạn thảo SGML/ XML hoặc các kho lưu trữ tài liệu, và các mô hình đối tượng này cũng đã ảnh hưởng đến DOM.
4. Các thực thể và lõi DOM
Trong các giao diện DOM cơ bản, không có đối tượng nào đại diện cho các thực thể. Các tham chiếu ký tự số và tham chiếu đến các thực thể được xác định trước trong HTML và XML, được thay thế bằng một ký tự duy nhất tạo nên sự thay thế của thực thể.
Vì các tham chiếu ký tự số và các thực thể được xác định trước không được nhận dạng như vậy trong các phần CDATA hoặc trong các phần tử SCRIPT và STYLE trong HTML, chúng không được thay thế bằng ký tự đơn mà chúng có vẻ như tham chiếu đến. Sự thể hiện của các thực thể chung, cả bên trong và bên ngoài, được định nghĩa trong các giao diện mở rộng (XML) của đặc tả Cấp 1.
Khi biểu diễn DOM của một tài liệu được tuần tự hóa dưới dạng văn bản XML hoặc HTML, các ứng dụng sẽ cần kiểm tra từng ký tự trong dữ liệu văn bản để xem liệu nó có cần được thoát bằng cách sử dụng thực thể số hoặc được xác định trước hay không. Không làm như vậy có thể dẫn đến HTML hoặc XML không hợp lệ. Ngoài ra, việc triển khai nên lưu ý rằng việc tuần tự hóa thành mã hóa ký tự ("bộ mã") không bao gồm đầy đủ ISO 10646 có thể không thành công nếu có các ký tự trong phần đánh dấu hoặc CDATA không có trong mã hóa.
5. Giao diện DOM và phương thức triển khai DOM
DOM chỉ định các giao diện có thể được sử dụng để quản lý các tài liệu XML hoặc HTML. Điều quan trọng là phải nhận ra rằng các giao diện này là một sự trừu tượng - giống như "các lớp cơ sở trừu tượng" trong C ++, chúng là một phương tiện chỉ định cách truy cập và thao tác biểu diễn nội bộ của ứng dụng đối với tài liệu. Các giao diện không ngụ ý một triển khai cụ thể cụ thể. Mỗi ứng dụng DOM được miễn phí để duy trì tài liệu trong bất kỳ cách trình bày thuận tiện nào, miễn là các giao diện được hiển thị trong đặc tả này được hỗ trợ.
Một số triển khai DOM sẽ là các chương trình hiện có sử dụng giao diện DOM để truy cập phần mềm được viết từ rất lâu trước khi đặc tả DOM tồn tại. Do đó, DOM được thiết kế để tránh phụ thuộc vào việc triển khai:
- Các thuộc tính được định nghĩa trong IDL không ngụ ý các đối tượng cụ thể phải có các thành viên dữ liệu cụ thể - trong các ràng buộc ngôn ngữ, chúng được dịch sang một cặp hàm get ()/ set (), không phải thành viên dữ liệu. Thuộc tính chỉ đọc chỉ có một hàm get () trong các ràng buộc ngôn ngữ.
- Các ứng dụng DOM có thể cung cấp các giao diện và đối tượng bổ sung không có trong đặc điểm kỹ thuật này và vẫn được coi là tuân thủ DOM.
- DOM không thể biết các hàm tạo nào cần thực thi. Nói chung, người dùng DOM gọi các phương thức createX trên lớp Tài liệu để tạo cấu trúc tài liệu và việc triển khai DOM tạo ra các biểu diễn nội bộ của riêng họ về các cấu trúc này trong việc triển khai các hàm createX của họ.
OMG IDL chỉ được sử dụng như một cách độc lập về ngôn ngữ và trung lập về triển khai để chỉ định giao diện. Nhiều IDL khác có thể đã được sử dụng. Nói chung, IDL được thiết kế cho các môi trường máy tính cụ thể. Mô hình Đối tượng Tài liệu có thể được triển khai trong bất kỳ môi trường máy tính nào và không yêu cầu thời gian chạy ràng buộc đối tượng thường được liên kết với các IDL như vậy.
Trên đây là trọn bộ những thông tin về DOM là gì? Hy vọng rằng qua bài viết này bạn đã nắm được những thông tin hữu ích nhất về Document Object Model.
Tham gia bình luận ngay!