Document Object Model (DOM) เป็นอินเทอร์เฟซสำคัญที่ช่วยให้นักพัฒนาสามารถโต้ตอบกับเอกสารเว็บโดยใช้ภาษาสคริปต์เช่น JavaScript ซึ่งแสดงถึงมุมมองที่มีโครงสร้าง ลำดับชั้น และตรรกะของเนื้อหาของเอกสารเว็บ เช่น HTML หรือ XML ในรูปแบบโครงสร้างแบบต้นไม้
กำเนิดของ Document Object Model (DOM)
แนวคิดของ DOM เกิดขึ้นครั้งแรกในช่วงกลางถึงปลายทศวรรษ 1990 อันเป็นผลมาจากความจำเป็นในการอนุญาตให้มีเนื้อหาเว็บที่มีการโต้ตอบมากขึ้น ด้วยการถือกำเนิดของเว็บไซต์ไดนามิกและการใช้ JavaScript อย่างแพร่หลาย จึงมีความจำเป็นสำหรับแบบจำลองที่อนุญาตให้สคริปต์เปลี่ยนโครงสร้างเอกสาร สไตล์ และเนื้อหา World Wide Web Consortium (W3C) รับหน้าที่สร้าง API มาตรฐานเพื่อจุดประสงค์นี้ ส่งผลให้เกิดการพัฒนา DOM
ระดับ DOM มาตรฐานระดับแรกคือ DOM ระดับ 1 เปิดตัวโดย W3C ในปี 1998 โดยเป็นโมเดลที่ครอบคลุมสำหรับเอกสาร HTML หรือ XML ทั้งหมด รวมถึงวิธีในการเปลี่ยนแปลงส่วนใดๆ ของเอกสาร
การขยาย Document Object Model (DOM)
DOM นั้นเป็นแพลตฟอร์มและอินเทอร์เฟซที่เป็นกลางทางภาษาซึ่งช่วยให้โปรแกรมและสคริปต์สามารถเข้าถึงและอัปเดตเนื้อหา โครงสร้าง และรูปแบบของเอกสารได้แบบไดนามิก
DOM ได้รับการจัดระเบียบเป็นลำดับชั้นของโหนด โดยแต่ละโหนดจะเป็นตัวแทนของส่วนหนึ่งของเอกสาร เช่น องค์ประกอบ คุณลักษณะ และข้อความ โครงสร้างแผนผังแบบลอจิคัลนี้ทำให้ง่ายต่อการนำทางและจัดการเนื้อหาของเอกสาร
เอกสารเว็บจะถูกจำลองเป็นแผนผังของออบเจ็กต์ที่มีคุณสมบัติและวิธีการ และสามารถมีออบเจ็กต์อื่นได้ ตัวอย่างเช่น เอกสาร HTML จะถูกแปลงเป็นวัตถุที่แสดงองค์ประกอบต่างๆ เช่น "body", "div", "span" และ "p" รวมถึงคุณลักษณะและเนื้อหาข้อความด้วย
Document Object Model (DOM) ทำงานอย่างไร
โครงสร้างภายในของ DOM ถูกจัดเป็นแผนผังของโหนด โหนดบนสุดคือ Document
โหนดซึ่งแสดงถึงเอกสารทั้งหมด ด้านล่างนี้. Element
โหนดสอดคล้องกับองค์ประกอบ HTML ในหน้า Attribute
โหนดถือคุณลักษณะขององค์ประกอบและ Text
โหนดเก็บเนื้อหาข้อความขององค์ประกอบ
โครงสร้างแบบลำดับชั้นนี้ช่วยให้นักพัฒนาสามารถนำทางโครงสร้างเอกสารและใช้วิธีการ API เพื่อเลือก สร้าง แก้ไข หรือลบโหนด
ต่อไปนี้เป็นตัวอย่างลักษณะที่เอกสาร HTML จะมีลักษณะเป็นแผนผัง DOM:
คณิตศาตร์Document
↳ Element: html
↳ Element: head
↳ Element: title
↳ Text: "Title of the Document"
↳ Element: body
↳ Element: h1
↳ Text: "Hello, world!"
↳ Element: p
↳ Text: "This is a paragraph."
คุณสมบัติที่สำคัญของ Document Object Model (DOM)
-
โครงสร้างต้นไม้: DOM แสดงถึงเอกสารในโครงสร้างต้นไม้แบบลอจิคัล ซึ่งทำให้การนำทาง การเลือก และการจัดการตรงไปตรงมาและใช้งานง่าย
-
ภาษาเป็นกลาง: DOM ไม่เชื่อมโยงกับภาษาการเขียนโปรแกรมใดภาษาหนึ่งโดยเฉพาะ เป็นแบบแผนสำหรับการแสดงและการโต้ตอบกับวัตถุในรูปแบบ HTML, XML และเอกสารประเภทอื่นๆ
-
การเข้าถึงและอัปเดตแบบไดนามิก: DOM ช่วยให้โปรแกรมเข้าถึงและอัพเดตเนื้อหา โครงสร้าง และรูปแบบของเอกสารได้แบบไดนามิก
-
ได้มาตรฐาน: DOM เป็นมาตรฐาน W3C ซึ่งรับประกันการยอมรับและความเข้ากันได้อย่างกว้างขวางในเบราว์เซอร์และแพลตฟอร์มต่างๆ
ประเภทของ Document Object Model (DOM)
ข้อมูลจำเพาะ DOM แบ่งออกเป็น “ระดับ” และ “โมดูล” หลายระดับ โดยแต่ละระดับจะเพิ่มคุณสมบัติและฟังก์ชันการทำงานจากรุ่นก่อนหน้า ประเภทที่สำคัญ ได้แก่ :
ระดับ/ประเภท DOM | คำอธิบายสั้น ๆ |
---|---|
โดมระดับ 1 | จัดทำแบบจำลองพื้นฐานสำหรับเอกสาร HTML หรือ XML ทั้งหมด รวมถึงวิธีจัดการองค์ประกอบและคุณลักษณะขององค์ประกอบ |
โดมระดับ 2 | แนะนำฟีเจอร์ต่างๆ เช่น การจัดการเนมสเปซ โมดูลสไตล์ที่รองรับ CSS และอินเทอร์เฟซใหม่มากมายเพื่อจัดการกับตาราง กิจกรรม ฯลฯ |
โดมระดับ 3 | เพิ่มการรองรับการจัดการเหตุการณ์ XPath และคีย์บอร์ด แนะนำอินเทอร์เฟซสำหรับการโหลดและบันทึกเอกสาร |
โดมระดับ 4 | ลดความซับซ้อนของ DOM หลักโดยลดการพึ่งพา แนะนำสัญญาสำหรับการดำเนินการแบบอะซิงโครนัส และเพิ่มคุณสมบัติเพิ่มเติม เช่น คุณสมบัติผู้ปกครองเพื่อการจัดการโหนดที่ง่ายขึ้น |
การใช้ Document Object Model (DOM)
DOM จะถูกใช้ทุกครั้งที่มีการจัดการหน้าเว็บโดยใช้ JavaScript เป็น API พื้นฐานสำหรับเทคโนโลยีเว็บมากมาย
นักพัฒนาใช้ DOM เพื่อเปลี่ยนรูปลักษณ์ ความรู้สึก และเนื้อหาของเว็บเพจแบบไดนามิก โดยไม่ต้องโหลดซ้ำทั้งหน้า ช่วยให้อินเทอร์เฟซผู้ใช้แบบโต้ตอบและตอบสนองได้
แม้จะมีพลัง แต่ DOM ก็ไม่ใช่ปัญหาที่ไร้ปัญหา อาจทำงานช้าหากไม่ได้ใช้อย่างระมัดระวัง โดยเฉพาะอย่างยิ่งกับเอกสารเว็บขนาดใหญ่หรือซับซ้อน การจัดการ DOM ที่ปรับให้เหมาะสมไม่ดีอาจทำให้การเรนเดอร์เพจช้าและอินเทอร์เฟซที่ไม่ตอบสนอง เพื่อแก้ไขปัญหานี้ นักพัฒนามักใช้ไลบรารีหรือเฟรมเวิร์ก เช่น jQuery, React หรือ Vue.js ซึ่งมี API ระดับที่สูงกว่าเพื่อการจัดการ DOM ที่มีประสิทธิภาพ
ลักษณะ DOM และการเปรียบเทียบกับข้อกำหนดที่คล้ายกัน
ภาคเรียน | คำอธิบาย | การเปรียบเทียบ |
---|---|---|
ดอม | API สำหรับเอกสาร HTML และ XML ให้การแสดงโครงสร้างของเอกสารและช่วยให้นักพัฒนาสามารถจัดการเนื้อหาและการนำเสนอด้วยภาพได้ | |
CSSOM | CSS Object Model (CSSOM) คือแผนผังของสไตล์ CSS ซึ่งคล้ายกับ DOM แต่สำหรับ CSS โดยเฉพาะ ช่วยให้สามารถจัดการสไตล์ชีทและสไตล์ที่ใช้กับ DOM | แม้ว่า DOM จะเน้นไปที่โครงสร้างเอกสาร แต่ CSSOM จะเน้นไปที่เลเยอร์การนำเสนอ |
เงา DOM | กลไกในการสรุปส่วนของแผนผัง DOM สำหรับการนำ Web Components ไปใช้ แยกส่วนของ DOM เพื่อ "ซ่อน" ออกจากแผนผังเอกสารหลัก | ไม่เหมือนกับ DOM ทั่วไป Shadow DOM มีสไตล์และลักษณะการทำงานแบบห่อหุ้ม |
มุมมองในอนาคตที่เกี่ยวข้องกับ Document Object Model (DOM)
เนื่องจากเทคโนโลยีเว็บมีการพัฒนาอย่างต่อเนื่อง DOM API ก็มีแนวโน้มที่จะขยายและปรับปรุงเช่นกัน การพัฒนาที่เป็นไปได้ในอนาคตรวมถึงวิธีการจัดการ DOM ที่มีประสิทธิภาพมากขึ้น การปรับปรุงการบูรณาการกับมาตรฐานเว็บที่เกิดขึ้นใหม่ และการพัฒนาข้อกำหนด HTML อย่างต่อเนื่อง
การพัฒนาอย่างต่อเนื่องที่น่าสนใจคือการนำ Web Components มาใช้เพิ่มขึ้น ซึ่งช่วยให้สามารถสร้างแท็ก HTML แบบห่อหุ้มที่สามารถนำมาใช้ซ้ำได้ สิ่งนี้เชื่อมโยงอย่างใกล้ชิดกับ Shadow DOM ซึ่งมีวิธีการห่อหุ้มองค์ประกอบ DOM
Document Object Model (DOM) และพร็อกซีเซิร์ฟเวอร์
พร็อกซีเซิร์ฟเวอร์เป็นตัวกลางที่ส่งต่อคำขอและการตอบกลับระหว่างไคลเอนต์และเซิร์ฟเวอร์ แม้ว่า DOM จะเกี่ยวข้องกับโครงสร้างและการจัดการเอกสารเว็บในฝั่งไคลเอ็นต์เป็นหลัก แต่พร็อกซีเซิร์ฟเวอร์จะทำงานในระดับเครือข่าย
อย่างไรก็ตาม สามารถพบได้ในสถานการณ์ที่พร็อกซีเซิร์ฟเวอร์อาจแก้ไขเนื้อหาของเอกสารเว็บ ตัวอย่างเช่น พร็อกซีเซิร์ฟเวอร์สามารถเพิ่ม ลบ หรือแก้ไของค์ประกอบ DOM ในหน้าเว็บก่อนที่จะเข้าถึงไคลเอ็นต์ ซึ่งอาจนำไปใช้ด้วยเหตุผลหลายประการ เช่น การแทรกสคริปต์ การลบองค์ประกอบที่ไม่ต้องการออก หรือการแก้ไขเนื้อหาเพื่อวัตถุประสงค์ในการแปลหรือปรับแต่ง
ลิงก์ที่เกี่ยวข้อง
- MDN Web Docs: Document Object Model (DOM)
- มาตรฐาน W3C DOM
- ข้อมูล JavaScript: DOM
- Google Web Fundamentals: วิธีการทำงานของเบราว์เซอร์
ภาพรวมนี้ควรให้ความเข้าใจที่ครอบคลุมเกี่ยวกับ Document Object Model (DOM) ที่มา วิธีการทำงาน ลักษณะเฉพาะ และแนวโน้มที่จะพัฒนา DOM ยังคงเป็นรากฐานสำคัญของการพัฒนาเว็บเชิงโต้ตอบ และจะยังคงมีบทบาทสำคัญต่อไปในขณะที่เทคโนโลยีเว็บก้าวหน้า