AJAXı
Anlamak
Geride bıraktığımız
2005-2006 yıllarında hakkında en çok konuşulan web olaylarından
birisi AJAX oldu. Dünya çapında ün sahibi olmuş sitelerin kendi
servislerinde AJAX isimli tekniği etkin bir şekilde kullanması
sonucu pek çok kişinin dikkati AJAX üzerine yoğunlaştı. Fakat
kişilerin yaptığı ilk yanlış, AJAX tekniğini başlı başına yeni bir
programlama dili olarak görmeleriydi. AJAX tekniği, daha önceden
zaten var olan JavaScript ve XML dillerinin, web tarayıcısında hazır
bulunan XmlHttpRequest nesnesi etrafında birlikte kullanılmasından
ibarettir. AJAXı böyle tanıtınca çok zor ve kompleks gibi görünüyor
fakat gözünüz korkmasın, hiç de öyle değil
AJAX terimi, Asynchronous JavaScript And XML kelimelerinin baş
harflerinden türetilmiştir. Bu terim ilk kez 2005 yılında Jesse
James Garrett tarafından kullanılmıştır. Dilimizdeki telaffuzu da
eyceks şeklindedir. Şimdi işin hikâye kısmını bir kenara bırakalım
ve neden AJAX sorusuna cevap arayalım.
Neden AJAX?
Bu soruya yanıt bulmak için alttaki web sayfası şablonunu ele
alalım. Alican kardeşimiz kendine bir web sayfası hazırlamış. B
bölgesine linkler yerleştirmiş. "Resimler" linkine tıkladığımızda C
bölgesinde Alicanın resimlerini görüyoruz. Fakat Alicanın
resimlerini görebilmek için A, B, C ve D bölgelerinin, diğer bir
değişle bütün sayfanın yeniden yüklenmesini bekliyoruz.
Ziyaretçilerin tek bir amacı vardır: Görmek istedikleri içeriğe en
hızlı bir şekilde ulaşmak. Örneğimizde B bölgesindeki bir linke
tıklayıp, C bölgesine Alicanın resimlerinin gelmesini bekliyoruz.
Bizi ilgilendiren tek birşey var o da C bölgesinde resimleri
görebilmek. O esnada A, B ve D bölgeleri bizi ilgilendirmiyor. O
halde bizi ilgilendirmeyen bölgelerin yüklenmesini neden bekleyelim
ki?
Amacımız C bölgesini en kısa sürede yükletmek. Bunun için FRAME veya
IFRAME adı verilen HTML etiketleri veya Flash gibi alternatif
yöntemler de kullanılabilir fakat AJAX son zamanlarda ikisinin de
yerini almış durumda.
AJAX tekniği ile web tarayıcıya yalnızca C bölgesinin yenilenmesini
belirtiyoruz. Web tarayıcımız bizden bu talebi aldıktan sonra,
Alicanın resimlerinin bulunduğu sayfa ile etkileşime geçiyor.
Resimlerin olduğu sayfa hazırlanıyor ve C bölgesine yükletiliyor. Bu
esnada kesinlikle A, B ve D bölgeleri yeniden yüklenmiyor ve sabit
kalıyor.
AJAXin Avantajı Nedir?
Öncelikle bir web geliştiricisi iseniz HTML, JavaScript, DOM,
CSS bilginiz zaten var demektir. En azından bu konuları mutlaka
duymuşsunuzdur. AJAX tekniği, saydığımız bu konuları kapsadığı için
yeni baştan bir dil öğrenmek zorunda değilsiniz. Sadece 5-10
dakikanızı ayırarak AJAX tekniğinin nasıl kullanıldığını öğrenmeniz
mümkündür.
Web sayfasının yalnızca yüklenmesi gereken bölgeleri yükletildiği
için AJAX web uygulamanıza hız sağlayacaktır. Hatta ziyaretçiniz,
bir masaüstü uygulaması kullanıyormuş hissine bile kapılabilir. Bu
yüzden AJAX ile web uygulamaları, masaüstü uygulamalarına biraz daha
yaklaşmıştır.
Bant genişliği, bir saniyede aktarılan bit sayısı olarak bilinir.
Bir web siteniz varsa ve bunu ücret karşılığı web hosting veren bir
şirketten alıyorsanız bant genişliği sizin için önemlidir. Kullanıcı
sayfayı her yenilediğinde yani talep ettiğinde bant genişliğiniz
azalır. Eğer bu azalmayı en aza indirirseniz aynı para karşılığında
çok daha uzun bir süre bant genişliğiniz kullanıma açık olur. Bu
konuda AJAX size mükemmel bir avantaj sağlar. Artık sayfanızın
gereksiz bölgeleri her işlemde yeniden yüklenmeyeceği için bant
genişliğinden büyük miktarda kâr sağlamış olursunuz.
AJAXin Dezavantajı Var mı?
Elbette AJAX de bazı dezavantajlara sahiptir fakat büyük
şirketlerin ve önemli programcıların, AJAXi geliştirme çabaları
sonucunda pek çok sevimsiz durumun ortadan kalkacağını umuyoruz.
Örneğin bir geri-ileri butonu sorunu mevcuttur. Gezdiğiniz sayfadan,
bir önceki sayfaya gitmek istediğinizde web tarayıcınızın geri
butonuna tıklarsınız. Fakat AJAX ile içeriğini yüklettiğiniz
bölgelerde geri ve ileri butonunu kullanamıyorsunuz. Her ne kadar bu
problem için ek yöntemler getirildiyse de tam olarak bir çözüm
bulunamadı.
Bir diğer dezavantajı ise, eskiden sunucuların yapmış oldukları bazı
işlemlerin kullanıcının bilgisayarına kaymasıdır. JavaScript,
kullanıcının kendi bilgisayarında yorumlanan bir dildir. AJAXin
büyük bir kısmında JavaScript kullanıldığı için bilgisayarınızın,
siz web sayfalarında gezinirken yapması gereken işlemler de
artmıştır. Bu da yavaş olan pek çok bilgisayarın daha da yavaşlaması
anlamına gelebilir.
AJAX ile yükletilen içeriğin kodlarını, sayfanın kaynak bölümünden
göremezsiniz. Aynı zamanda Google ve Yahoo! gibi arama motorlarının
web sayfanıza gönderdiği robot yazılımlar da göremez. Dolayısıyla
AJAX ile oluşturulan içerik, arama motorlarının sonuç sayfalarında
listelenmezler. Günümüzde, yaptığınız web sayfasının arama
motorlarında görüntülenmesi kritik derecede önemlidir ve AJAX bu
konuda size bir dezavantaj sağlar. Fakat bu durumun avantaja
dönüştüğü yerler de vardır. Eğer yapmış olduğunuz web uygulaması,
ziyaretçileriniz hakkında önemli kişisel bilgileri tutuyorsa bu
bilgilerin arama motorlarında herkes tarafından görüntülenmesini
asla istemezsiniz. Bu bilgileri AJAX ile yüklettiğinizde ise
kaygılandığınız bu durum ortadan kalkabilir.
AJAXi Kimler Kullanıyor?
En başta Google, pek çok servisinde AJAX tekniğini
kullanmaktadır. Microsoft da bu tekniği kullanan pek çok servis
hazırlamıştır. Yahoo! da diğerlerinden geri kalmamış, bu etkileyici
tekniği kendi servislerine entegre etmiştir. Gördüğünüz gibi web
alanındaki en büyük şirketler yoğun bir şekilde AJAX tekniğini
kullanmaktadırlar. Ayrıca kendilerinden oldukça bahsettiren YouTube,
Flickr ve Del.icio.us siteleri de AJAX tekniğini kullanan önemli web
uygulamalarıdır.
|