Logo David Burdelak
Blog

DOM (Document Object Model) - czym jest i jak tworzy strukturę strony?

DOM (Document Object Model)

Czy wiedziałeś, że to co widzisz na ekranie nie jest bezpośrednio kodem HTML, który napisał programista? Między surowym kodem a gotową stroną znajduje się DOM (Document Object Model). To właśnie dzięki niemu przeglądarka rozumie strukturę witryny i pozwala na jej dynamiczne zmiany. Z tego artykułu dowiesz się, czym jest ten model i jak tworzy on fundament nowoczesnego internetu.

Czym właściwie jest model DOM?

DOM to interfejs, który zamienia statyczny dokument HTML w dynamiczne drzewo obiektów. Wyobraź sobie, że Twój kod to instrukcja obsługi, a DOM to gotowy, działający model, który powstał na jej podstawie. Przeglądarka analizuje każdy tag (np. <body>, <h1>, <div>) i zamienia go w tzw. węzeł (node), którym można dowolnie sterować.

Jak przeglądarka tworzy strukturę Twojej strony?

Proces zamiany kodu w żywy model nazywamy parsowaniem. Dzieje się to w dwóch głównych krokach:

  1. Tokenizacja: Przeglądarka zamienia ciągi znaków w kodzie HTML na konkretne elementy (np. znacznik otwierający, tekst, znacznik zamykający).
  2. Budowanie drzewa obiektów: Na podstawie tych elementów tworzone są obiekty, które łączą się ze sobą w relacje. Tak powstaje hierarchia, w której <html> jest korzeniem, a reszta elementów jego gałęziami.

Warto pamiętać, że ta budowa struktury jest częścią szerszego tematu, jakim jest działanie strony internetowej w przeglądarce – model DOM musi powstać, zanim przeglądarka zacznie nakładać style i wyświetlać piksele.

HTML a DOM – kluczowe różnice

Częstym błędem jest myślenie, że HTML i DOM to to samo. Istnieją sytuacje, w których te dwa byty się różnią:

  • Autokorekta błędów: Jeśli zapomnisz zamknąć tag w kodzie HTML, przeglądarka sama naprawi to w modelu DOM, by strona mogła się poprawnie wyświetlić.
  • Zmiany w czasie rzeczywistym: Skrypty mogą dodawać lub usuwać elementy na stronie już po jej załadowaniu. Kod źródłowy HTML na serwerze pozostaje bez zmian, ale DOM żyje i ewoluuje podczas sesji użytkownika.

Interakcja z modelem strony

Bez struktury DOM, JavaScript nie miałby jak wejść w interakcję z użytkownikiem. To właśnie ten model udostępnia programistom sposoby na modyfikację strony. Kiedy klikasz przycisk i zmienia się treść, dzieje się to dlatego, że skrypt zmodyfikował odpowiedni węzeł w drzewie obiektów. Wykorzystują to wszystkie nowoczesne frameworki, takie jak React.js.

Nowoczesne podejście: Modyfikacja DOM na krawędzi

Choć zazwyczaj o modelu DOM myślimy w kontekście przeglądarki, nowoczesne technologie pozwalają na ingerencję w strukturę strony jeszcze zanim trafi ona do użytkownika. Dzięki rozwiązaniom takim jak Edge SEO, możemy wykorzystać serwery brzegowe (CDN) do wprowadzania zmian w kodzie HTML "w locie". Pozwala to na optymalizację struktury strony bez konieczności bezpośredniej edycji plików na serwerze głównym.

Dlaczego optymalna struktura DOM jest ważna?

Rozmiar i stopień skomplikowania tego modelu mają bezpośredni wpływ na wydajność. Zbyt rozbudowane, głębokie drzewo obiektów sprawia, że przeglądarka zużywa więcej pamięci i czasu na jego przetworzenie. Dbanie o czysty, semantyczny kod HTML to fundament, na którym opiera się szybkość działania Twojej witryny i zadowolenie użytkownika.