AJAX’la Canım AJAX’la
Öncelikle AJAX’ın deterjan markası olduğunu düşünenler için kısa bir giriş yapalım. Açılımı “Asynchronous JavaScript and XML” olan bu teknoloji sayesinde XMLHTTPRequest objesini kullanarak web sunucusuna eşzamansız istek gönderip cevap alabiliyoruz.
Bu işlem arka planda yapıldığından istek gönderimi ve cevaplama işlemi sırasında tüm sayfanın yeniden yüklenmesine gerek kalmıyor. Günümüzde, sunucuya dosya yükleme, alış veriş sitelerinde sepet güncelleme, eş zamanlı form kontrolleri gibi işlemler için AJAX kullanmak artık bir lüks değil zorunluluk halini aldı.
Zamanla AJAX’ın etkin kullanımı, gidip gelen isteklerin doğru ve kontrollü bir biçimde akışını sağlamak için AJAX framework’ler yazıldı. İnternette araştırırsanız SAJAX, XAJAX, Tigermouse gibi daha yaygın olarak kullanılan framework’lere ulaşabilirsiniz. Ben ise XAJAX’ı gözüme kestirdim (Nuri Alço hesabı).
Şimdi XAJAX ile basit bir eşzamansız isteğin nasıl yapılacağına kısaca bakalım. Sayfamızda bir DIV etiketimiz olsun ve buraya bir linke tıklandığında PHP fonksiyonumuzu çağırarak “Hadi lan” yazdıralım. “Merhaba Dünya”dan ve “$foo->foobar”dan fena halde sıkıldığınızı biliyorum.
-
<div id="kutu"></div>
Bölmemizi oluşturduktan sonra PHP ile bir yazdırma fonksiyonu yazıyoruz:
-
function yazdir($metin) {
-
echo $metin;
-
}
Şimdi içeriği DIV’e aktaracak olan PHP fonksiyonunu yazıyoruz:
-
function yazdirAjax($metin) {
-
$cevap=new xajaxResponse();
-
$cevap->assign(‘kutu’, ‘innerHTML’, yazdir($metin));
-
return $cevap;
-
}
HTML sayfamıza XAJAX’ın çekirdek dosyasını dahil ediyoruz:
-
require_once("xajax_core/xajax.inc.php");
XAJAX istemci objesini yaratıyoruz ve kullanacağımız fonksiyonu tanımlıyoruz:
-
$xajax = new xajax();
-
$xajax->registerFunction(‘yazdirAjax’);
-
$xajax->processRequest();
HTML sayfamızın HEAD etiketleri arasına framework’ün oluşturduğu JavaScript kodlarının yazdırılmasını sağlıyoruz:
-
$xajax->printJavaScript();
Son olarak sayfamıza kullanıcının tıklayacağı bağlantıyı oluşturuyor ve OnClick olayında XAJAX fonksiyonunu çağırmasını sağlıyoruz:
-
<a href="#" onClick="xajax_yazdirAjax(’Hadi lan’);">
-
Sakın Tıklama!
-
</a>
Normal şartlar altında bu kodun çalışması gerekir; çalışmazsa da sizin suçunuzdur. Kodu dallandırıp budaklandırdım ki normal PHP fonksiyonları ile XAJAX’ı kullanan fonksiyonlar birbirini nasıl çağırıyor görüp ibret alın diye.



Tanshaydar
18.08.2008
1 yorum yapılmış:
JaMaL | 22 Mart 2008 | Cevapla
AJAX müthiş bir altyapı. POST olayını felan ortadan kaldırıyor