How is the DOM created?
Tags: javascript, webdev
Published: 2024-04-08 08:50:42

The DOM (Document Object Model) is a very essential tool and widely used by programmers in today's time. The DOM is an API (Application Program Interface) which results in the layout of intentional content by a user, and how it is accessed or manipulated. The Document Object Model is made up of nodes, that are put into a hierarchical structure, that's allows a user to have complete control of what's going on. It helps to visually understand that the Document Object Model is just a HTML document, represented as a JavaScript object. When a web browser receives a HTML document from a server, the first action it takes is parsing the entire file, which involves making every element in the HTML document a node, and setting it in it's correct position inside of a hierarchical data structure.

The Document Object Model is an API, which stands for Application Program Interface that sets the blueprint of content, allowing it to be accessed and manipulated. The Document Object Model isn't a program that runs, it's sole reason for existing is to navigate through the content on a webpage, while having complete control over it. When the browser parses through the HTML document, a DOM tree is created with a tree like structure, that is filled with nodes. These nodes are what were the elements in the HTML document. For example, some would be the head, body, div, and img just to name a few. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ss15we1y4jvaalsulim6.jpg)

Data sent to the server is stored in the Document Object Model, which can then be accessed using JavaScript. Without the Document Object Model, web browsers wouldn't be able to properly communicate with HTHL documents, resulting in  a static like situation, refraining from allowing individuals to have a interactive experience with the webpage as whole. The DOM is needed by the browser to parse through the HTML received from the server, which means without it the browser wouldn't be able to understand the structure of the HTML document. Organizing the content properly is very important in rendering content properly on the webpage, which once again wouldn't be able to be possible with the DOM, because that is what organizes the nodes properly in the hierarchical structure.

The Document Object Model also is the reason behind allowing essential functional interactions like clicks, mouse motions, and even keyboard inputs. It should start becoming more and more aware, exactly how vital the Document Object Model is, to being in complete control of your code. Event handling would not be possible, and web pages would have a scarce amount of interactivity. That is not desirable in a world, where we envision having the power to not just access content on a web page, but also modify whatever we please.

JavaScript and the Document Object Model were once tied together, but as things evolved, they each separated and stood separately. It's not shocking, as change is inevitable, especially with something as fast as coding.

Since the Document Object Model is simply the HTML document represented as a JavaScript object, when one is updated, so the the other. If anything is edited on the tree-like structure of the Document Object Model, it will make the exactly same change, or changes in the HTML document, at the she same time. Whether it's modifying, adding or deleting nodes, any type of manipulation done to the tree-like structure will make those same changes in the form of the HTML document. Same vice versa, if a type of manipulation is done to the HTML document, the same exact change will take place in the Document Object Model. Once again, this is all possible, because of the what? The Document Object Model. Without that being available and present, web browsers would be unable to interpret HTML documents, resulting in a static like circumstance. The Document Object Model plays a key role in allowing an individual to have dynamic control over web pages

While the parsing of the HTML document is taking place, there is a possibility that a external source may be encountered, such as a script, style sheet, or image. External resources like these are transferred to the Document Object Model asynchronously.

The Document Object Model is a very important tool in allowing individuals in tech to have creative control over their desires, when it comes to bringing ideas to life. It allows us to to have the ability to traverse over the entire file, and modifying anything we choose, even down to the smallest element. Without it, web pages would be at a still, and completely boring, underwhelming and have no interactivity at all! All of this is possible, because of the parsing action that goes into place, when a HTML document is sent to a server. Which then turns every element inside of that HTML document to a node. Which also as a plus, organizes all of the nodes into a hierarchical structure, giving proper placement of each element, allowing the user to correctly navigate through everything, and modify anything if needed.

Sources:
https://en.wikipedia.org/wiki/Document_Object_Model#:~:text=In%20summary%2C%20creating%20a%20DOM,case%20and%20the%20developer's%20preference.

https://engineering.teknasyon.com/what-is-the-dom-how-does-html-rendering-happen-in-browsers-cbeb12bdfea6

https://www.dynamicwebtraining.com.au/blog/dom-element-in-javascript#:~:text=How%20does%20DOM%20works%3F,as%20the%20Document%20Object%20Model.