DOM (Document Object Model) ve BOM (Browser Object Model)

batuhan baybas
2 min readJun 21, 2022

--

Türkçesi döküman nesne modeli olan DOM asalında bir internet sayfası içerisine bulunan HTML etiketlerini manipüle edebilmemizi sağlayan W3C standartıdır. Yani DOM un yapısını basitçe kök olarak sayfa oluştururken yazdığımız <html> etiketi i dalları ise diğer html etiketleri olarak düşünebiliriz.

Peki bu etiketleri manipüle etmekden kastımız tam olarak nedir. Frontend development ta olmazsa olmaz dil olan JavaScriptin DOM elemanlarına ulaşımı vardır bunu ise neredeyse her Frontend Development 101 dersinde gördüğümüz bir methodlar yardımıyla gerçekleştirir

document. getElementById(id) — Elementi ID’ye göre seçici. getElementsByClassName(class) — Sınıfa göre seçici getElementsByTagName(etiket) — Etikete göre seçici

bu 3 method sayesinde id sinin ismiyle yada verdiğimiz stillendirme clasının ismiyle yada direk etiketin kendi ismiyle ulaşıp istediğimiz manüpüle işlemlerini gerçekleştirebiliriz.

Örnektede görüldüğü gibi example id li elemanın içindeki text DOM manüpüle edilerek oluşturulmuş. Bu metin elbette statik bir şekilde de oluşturulabilirdi ancak günümüz internet çağı ve bu dataların bir sunucudan geldiği senaryoda kullanım tamda bu şekilde olmaktadır.

Frontend Development için kullanılan neredeyse bütün kütüphaneler bu basit mantığı temel alarak kullanmaktadır. Tabiki orada VDOM gibi kavramlarda hayatımıza giriyor ancak şimdilik o kısımdan bahsetmeyeceğim

BOM (Browser Object Model) yani tarayıcı nesne modeli ise tarayıcı kısmında gördüğünüz herşeyi temsil eder örn BOM DOM u kapsar aslında yukarıdaki örnekteki id ye ulaşma işlemini

window.document.getElementById(“example)

şeklinde de yazabilirdik

Mevcut tarayıcının genişlik ve yükseklik değerlerine ulaşmak isterseniz

window.innerHeight - seçilen elemanın yüksekliği(pixel cinsinden)

window.innerWidth - seçilen elemanın genişliği (pixel cinsinden)

yada bir linke gitmek istediğimizi düşünelim

window.location.href(‘www.somewhere.com’)

yine her JavaScript geliştiricisinin debug yapmasında yardımcı olarak kullandığı 2 method aslında BOM a ne kadar aşina olduğumuzu da gösteriyor tabi biz bu 2 method uda kısaltmalarıyla kullanıyoruz ama aslında bu 2 methodun orjinal hali

window.console.log(‘Hello World’)

window.alert(‘Hello World’)

Örneklerden de anlaşılacağı gibi bütün DOM elementleri aslında BOM un birer parçası

Ayrıştıkları nokta sayfanın içerik kısmında manüpüle işlemler yapmak istiyorsak DOM

Eğer açık sayfa üzerinde tarayıcı kısmının özelliklerine müdahale etmek istiyorsak da yaptığımız işlem BOM manüpilasyonu olarak adlandırılıyor

--

--