AJAX'ın avantajları ve dezavantajları
İyi teknolojiler zaman içerisinde, öngörülenin ötesinde yenilik ve kolaylık getirir. AJAX böyle bir 'teknoloji'dir. Bu yazıda, AJAX'ın tecrübeyle sabit bazı avantajlarından ve dezavantajlarından bahsedilecektir.
Avantajları
Kullanıcıların kullandıkları sayfaların gereksiz yere yenilenmesi, hem teknik birçok kodlamayı gerektirir hem de kullanıcı bundan pek hoşlanmaz. Geliştiriciler olarak, AJAX kullanarak bir çok kolaylık sağlayabiliriz hem kendimize hem kullanıcıya. İşte bazıları...
- Sunucunuz boşuna yorulmaz: Ekranda açık bir sayfayı görüntülemek için sunucunuzda bir çok işlem gerçekleşti. Bunların hepsini tekrar yaptırmanıza gerek yok. Sunucunuzu boşuna yormayın. Sunucuyla bilgi alış verişi yapmak istiyorsanız AJAX ile yapabilirsiniz.
- Submit'leri karşılayan kodlarınız sade ve basit olur: Formu yenilemek için "submit" edildiğinde, sunucudaki kodlarınız, "Kaydet" düğmesine basılmadığını, sadece sayfanın yenilendiğini tespit etmek zorundadır. Bu kodu her sayfaya koymak zorunda kalırsınız. Sayfayı yenilemeyin. AJAX kullanabilirsiniz.
- Doldurulmuş bir formdaki değerleri hatırlama derdinden kurtulun: Sayfayı yenilerseniz, kullanıcının girdiği bilgileri muhazafa etmeli, sayfa yüklendiğformdaki kutuları dolu getirmelisiniz. Dolu getirme kodları can sıkıdır. Sayfayı yenilemeyin. AJAX kullanabilirsiniz.
- Kullanıcı bekletilmez: Sayfanın yenilenmesi bazen uzun sürer. Kullanıcı beklemekten hoşlanmaz. Vereceği optional bilgi varsa bile vermekten vazgeçer. Sayfayı gereksiz yere yenilemeyin. AJAX kullanabilirsiniz.
- Bandwidth: Sayfa yenilendiğinde, sunucunuzun bandwidth'ini harcar. Ne kadar az sayfa yenilemesi olursa, sunucunuzun hattı o kadar rahat olur. Sayfayı gereksiz yere yenilemeyin. AJAX kullanabilirsiniz.
- Entegrasyon kolaylığı: AJAX ile hazırlanmış objeleri/nesneleri, uygulamanızdaki sıradışı sayfalara bile entegre etmek çok kolaydır. Hazırladığınız bir Yorum Yazma Formu'nu ele alalım... Bu formu Kitap Detay sayfasına ekleyebileceğiniz gibi, Haber Detay sayfasına da ekleyebilirsiniz. Şöyleki; Yorumu Gönder düğmesine basıldığında, AJAX kullanarak, formdaki bilgileri merkezî ortak bir "/comment/save.cfm" dosyasına gönderebilirsiniz. Sayfa yenilenmeden. Kitap Detay ve Haber Detay sayfalarında yorum mekanizmasıyla ilgili olarak neredeyse hiç kod yazmazsınız.
- Kullanıcıların kafası karışmaz: Formu kaydetmek için sayfayı yenilemezsiniz. Kullanıcıyı "save.cfm" sayfasına yönlendirmezsiniz. Yönlendirdiğiniz sayfadan nasıl geri dönülür uğraşmak zorunda kalmaz. Kullanıcı aynı sayfada kalmaya devam eder. Kullanıcıdan alacağınızı alırsınız. O da vereceğini verir. Sayfayı boşuna yenilemeyin. AJAX kullanabilirsiniz. Bu konuyla ilgili bir başka yazı: Sayfadaki bilgiyi değiştirmede yeni yaklaşımlar
- Aşamalı formlar hazırlamak kolaylaşır: Her ne kadar AJAX ile doğrudan ilgisi olmasa da, Javascript kullanarak, aşamalı Sihirbaz formlar hazırlayabilirsiniz. "İleri" düğmesine basıldığında, birinci formu gizler ikinci formu gösterirsiniz. Form henüz submit edilmediğinden, kullanıcı formu kapattığında, veritabanına "temp" kayıtlar kaydedilmemiş durumdadır. Mecbur kalmadıkça veritabanına böyle "temp" şeyleri kaydetmeyin. AJAX kullanabilirsiniz.
Dezavantajları
Her ne kadar iyi bir teknoloji olsa da, getirdiği yeni yaklaşımlardan dolayı bazı dezavantajları da olabilmektedir. İşte bunlardan bazıları...
- Kullanıcı deneyimlerinin kayıt altına alınması: Kullanıcılarınızın yazılımınızdaki deneyimlerini izliyorsanız, yaptıkları her tıklamadan haberdar olmak isterseniz. AJAX kullanılmış sayfalarda bu noktada bazı sıkıntılar çıkabilir. AJAX ile hazırlanmış düğme ve linklerde sayfa çoğu zaman yenilenmez. Adres satırı genelde değişmez. Bu nedenle, klasik teknik yöntemleri kullanırsanız, ziyaretçilerin tıklamalarını ölçemezsiniz. Bu sıkıntıyı ortadan kaldırmak için, AJAX kodlarınızda, bu tıklamaları ölçen teknikler kullanmalısınız. Kullanıcı deneyimlerini ölçmek için hangi aracı kullandığınız bu noktada önem kazanmaktadır. Eğer Google Analytics kullanıyorsanız, AJAX kullandığınız sayfalarınızı ölçebilirsiniz. Sıkıntı yaşamazsınız. Google'ın şu yazısı size yardımcı olacaktır: AJAX uygulamalarını nasıl izlerim?
- Sunucudaki bilgi güncellendiğinde ziyaretçinizin ekranını güncellemek: Klasik AJAX tek yönlüdür; kullanıcının tarayıcısı sunucuyu kontrol etmediği sürece, ekrandaki bilgi güncellenmez. AJAX'ın bu 'eksikliğini' 'gideren' 'Reverse AJAX' yaklaşımı incelemek isteyebilirsiniz: Reverse AJAX
- Teknik kadronun bu yeni teknolojiye adapte olması: AJAX yeni bir teknolojidir. Yararlanılması gereken bir teknoloji olduğu kesindir. Teknik kadrolar bu kadar hevesli olmayabilirler. Uygulama Sunucu teknolojiniz üzerinden kodlama yapan kadrolarınızın bu yeni teknolojiyi öğrenmesi zaman ve maliyet anlamına gelebilir.
- Atılan taş, ürkütülen kurbağaya değmeli: AJAX bir Javascript yan teknolojisidir. Klasik Javascript tek başına bile, uygulama altyapınızı karmaşıklaştırmaya yetebilir. AJAX kodlarınızın Javascript kodlarınızı daha çetrefilli hale getirmesine izin vermemelisiniz. Sağlamlığı ve kalitesi dünyaca kabul edilmiş AJAX Frameworkleri kullanabilirsiniz. Mümkün olduğu kadar, kullandığınız Uygulama Sunucu teknolojisinin önerdiği ve built-in sunduğu AJAX yetenekleriyle işlerinizi halletmeye çalışın. AJAX Framework ve Design Patternleri için bazı kaynaklar:
http://en.wikipedia.org/wiki/Ajax_framework
http://ajaxpatterns.org/
http://developer.yahoo.com/yui/ - Tarayıcının İleri-Geri düğmeleri: Kullanıcılar, bir linki tıklattıklarında, önceki sayfaya geri dönebilmek isterler. Yaptığınız AJAX kodlamasına bağlı olmak üzere, bu düğmeler bazen çalışmayabilir. Uygulamanızı kodlarken, İleri-Geri düğmelerinin sorunsuz çalışmasını sağlayın. AJAX sizin seçiminizdir. Kullanıcılara hiçbir dezavantaj getirmemelidir!
0 yorum:
Yorum Gönder