Pazar, Ocak 07, 2007

Asynchronous Javascript and XML (AJAX) nedir?

Ajax isim olarak "Asynchronus Javascript and XML" kelimelerinin kısaltmasıdır ve bu yöntemi kullanan topluluklar tarafından verilmiş isimdir. Gerçekte bu yöntem tarayıcıların asenkron sunucu kodu çalıştırmasına verilen isimdir. Yapılan işin göbeğinde XMLHttpRequest isimli bir nesne olduğundan ve bu işlemlerde Javascript ile yapıldığından ismi bu şekilde kalmıştır. Dolayısıyla AJAX dediğimizde anlamamız gereken bir teknoloji değil, anlamamız gereken XML ve Javascript gibi bir kaç teknoloji kullanılarak web uygulaması geliştirme yaklaşımı olmasıdır. AJAX tipi geliştirme, Microsoft’un internet explorer için bir kaç yıl önce geliştirmiş olduğu bir ActiveX bileşeni kullanılarak yapılmakta. Bu bileşenin adı belki daha öncede duymuş olabileceğiniz XMLHttpRequest. XmlHttpRequest, ilk olarak IE nin 5.0 versiyonunda implemente edilmiştir. Evet yanlış duymadınız bu teknik ilk defa Microsoft tarafından oluşturulmuştur. Bu tekniğinin faydası kısa sürede görülünce Opera, Mozilla, Firefox, Netscape ve Safari gibi diğer web tarayıcılarıda bu bileşeni implemente ettiler.
XMLHttpRequest Bileşeni ne yapar?
XMLHttpRequest web tarayıcısı üzerinde çalışan bir bileşendir. Bu bileşen asenkron bir şekilde bir web sayfasına istekte(request) bulunabilir ve yine asenkron bir şekilde isteğe karşı gelen cevabı(response) kendisini çağıran yere iletebilir. Bütün bu işlemleri siz farkına varmadan arka planda (background) yaptığı için web uygulamasına sanki bir masaüstü uygulamasıymış hissini verebilirsiniz. Bir örnek vermek gerekirse, bir web formu yaptınız ve formun sunucuya gönderilmesi için bir buton(düğme) koydunuz. Buton’a basıldığında client tarafında çalışan bir script aracılığıyla(örneğin javascript) bilgiler XMLHttpRequest bileşeni kullanılarak arka planda sunucuya gönderilebilir ve sunucudan istenilen cevap alınabilir. Boylece sayfada sabit kalması gereken içerikler yeniden sunucudan alınmayacağı için hem sunucu yorulmamış olacak hemde kullanıcı daha az beklemiş olacak. Ve elbetteki butün bu işlemler bir java applet yada actitiveX nesnesi ile değil bütün tarayıcılar tarafından desteklenen bir yöntemle yapılacak.

Basic AJAX Examples


Demo Application

http://www.clearnova.com/ThinkCAP/servlet/LayoutMgr?LAYOUT=/UberNova/layDashboard&$LAYOUTS$=/cn/home$