![]() |
| |||||||
| Kayıt ol | Forum Kuralları | Yardım | Üye Listesi | Takvim | Arama | Bugünün Mesajları | Forumları Okundu Kabul Et |
| Duyurular |
![]() |
| | LinkBack | Konu Seçenekleri | Gösterim Modu |
| ||||
| AJAX (Asynchronous Javascript and XML - Eşzamansız JavaScript ve XML) AJAX Nedir? AJAX (Asynchronous Javascript and XML - Eşzamansız JavaScript ve XML), Web 2.0 teknolojilerinin yardımıyla oluşan ve gittikçe ünü artan bir kullanım tekniğidir (dil değil!). AJAX sayesinde sayfanın belirlenmiş herhangi bir alanında, sayfayı yenilemeden XMLHttpRequest nesnesinin yardımıyla bilgi alışverişi yapan web uygulamaları geliştirilebilir, JavaScript yardımıyla daha başarılı ve görsel sayfalar ortaya çıkarabilirsiniz... Neden AJAX Kullanmalıyım? Çünkü; - Microsoft, Google gibi internet devlerinin bu sistemi kullanmak için çabalara girişmesi; diğer şirketlere de örnek olarak AJAX kullanabilen eleman arayışına girmeleri, - Kullanıcıların AJAX ile yapılmış sayfalarda daha hızlı hareket edebilmeleri ve sayfaların görsel olarak doyurucu olmaları, - Sunucuyu yenilenmesi gereksiz olan bilgileri kullanıcıya gönderme gibi bir yükün altından kaldırma ve buna bağlı olarak bant genişliği kullanımının düşmesi ...gibi bir çok sebep yüzünden AJAX Tekniğini Kullanan Bazı Ünlü Sistemler - GMail, Google Reader ve Google Maps gibi bazı yeni Google servisleri; (Google yeni hizmetlerinde AJAX ile şov yapmaya başladı ) - E-Messenger, MSN Web Messenger gibi tarayıcı tabanlı MSN istemcileri; - ZK Demo gibi bazı kişisel, kurumsal sayfalar... AJAX'ı kullanmaktadırlar. İnternette Birçok AJAX Kütüphanesi Görüyorum. Bu Yazı da Onları Anlatan Bir Yazı mı? / Bu Kütüphaneleri Kullanmalı mıyım? Hayır, bu yazı XMLHttpRequest nesnesinin kullanımıyla ilgili bir JavaScript tekniğini anlatan bir yazıdır, internetteki AJAX kütüphanelerinin kullanımı geçmez. Ancak, bu gördüğünüz kütüphaneleri şu an kullanmanızı pek önermem... (özellikle PHP kütüphanesi şeklinde olanları) Zira şu an kararlı bir AJAX kütüphanesinin bulunmayışı, herhangi bir sorun çıktığında yeterli sorun çözüm bilgisinin internette olmaması yüzünden kütüphane dosyalarıyla boğuşmak gibi birçok sebep, kullanıcıları bu teknikten soğutmaktadır. (Tabii kütüphane kullanmayın demiyorum, sadece tekniğin özünü görmenin daha yararlı olacağından söz ediyorum ) Hatta belki bu yazının sonunda kendinizi daha da geliştirerek kendi kütüphanelerinizi de yazabilirsiniz AJAX kullanan bir Türk programcının hazırladığı örnek kütüphane: S@rdalya ([Sar]mal [D]inamik [Al]t [Ya]pısı) Yukarıda Bant Genişliği Kullanımından Bahsetmiştiniz... Cidden Büyük Oranda Rahatlık Sağlıyor mu? Hayır, çok büyük bir rahatlama sağlamıyor. -sayfanın boyutu çok büyükse ve yollanan bilgilere gelen cevaplar küçük bir alanda değişiklik yapıyorsa, daha fazla tasarruf yapılabilir tabii- Hatta, bu alandaki Flash tabanlı bilgi alışverişi yapan rakip uygulamalara karşı da yavaş kalıyor. Bunun yanında da yazılacak kodun JavaScript tabanlı ve fazla olması, küçük sayfaların yüklenme hızını da etkileyebiliyor... Bütün bunlara karşılık yine de AJAX seçebileceğiniz en iyi tekniklerden birisidir, orası ayrı AJAX Nasıl Kullanılır? Gelelim işin teknik kısmına... Yazımın başında da belirttiğim gibi, bir HTML sayfası içinde AJAX kullanmak istiyorsanız, öncelikle JavaScript içinden XMLHttpRequest nesnesini çağırmanız gerekir. Bu nesnenin çağırım yolları farklı tarayıcılarda farklı şekillerde oldukları için öncelikle tarayıcının türü tespit edilmeli ve ona göre işlem yapılamalıdır...(Hemen korkmayın; Internet Explorer, Mozilla Firefox, Opera gibi ünlü tarayıcıların çoğu destekliyor bu nesneyi ) Bu işlem de belirli bir düzeyde JavaScript bilgisi gerektirmekle birlikte, yazımızın sonraki kısımlarındaki bazı kodları ve işlemleri anlayabilmeniz için temel düzeyde JavaScript bilmeniz önerilir. Bilmiyorsanız da sorun değil, deneye deneye AJAX'ı kullanabilirsiniz O hâlde biz bu nesneyi nasıl çağıracağız? Şöyle ki; PHP- Kodu: Nesneyi oluşturdum. Sonra ne yapacağım? Nesne oluştuktan sonra AJAX ile bilgi alışverişinin yapılacağı sayfaya gönderim yapacağız. Bu gönderimi yapmak için nesnemizde varolan fonksiyon open() fonksiyonudur: Fonksiyon: open() Kullanılışı: (* = Belirtilmesi zorunlu) open([*Yollama methodu, [*Yollanacak URL, [*Eş Zamanlılığı [Kullanıcı adı, [Parola]]]]] [*Yollama methodu] Yapılacak bilgi alışverişi için kullanılacak methodu belirtir. Form içinde GET kullanıyorsanız / sadece dosya içeriğini alacaksanız GET kullanmanız gerekir. Eğer formlarınızda POST yöntemini uyguluyorsanız, POST yazmanız gerekir ki; POST ile gönderim daha ileri bir AJAX kullanım seviyesi olduğu için sonraki yazımızda işleyeceğiz onu... (Kısa bir not: AJAX, internet üzerinden dosya yollamayı desteklemez!) [*Yollanacak URL] Bilgi alışverişi yapılacak olan URL adresidir. Query String kullanarak yapılan göndermeleri de destekler. (dosya.php?x=y şeklindeki gibi) [*Eş Zamanlılığı] Alışverişin eş zaman içinde yapılıp yapılmadığının yazıldığı parametredir. Mantıksal değer alır (true / false). [Kullanıcı Adı, [Parola]] Eğer HTTP doğrulaması gerekiyorsa, kullanıcı adı ve parola bilgileri bu iki parametreye yazılabilir. ------------------ Bu bilgilere göre örnek bir kullanım şekli: PHP- Kodu: Peki bu kurduğumuz bağlantı üzerinden nasıl işlem yapabiliriz? open() ile kurulan bağlantıdaki HTTP isteği durumunun değişmesi hâlinde, yapılacak olan fonksiyonu çağıran bir XMLHttpRequest nesnesi onreadystatechange'i kullanarak bu tür işlemler yapabiliriz. Bu özelliğe değer olarak bir fonksiyon belirlenir. - readyState ve status özellikleri onreadystatechange'e belirtilen fonksiyon içerisindeki olayların düzgün bir şekilde kontrol edilmesi için kullanılabilecek olan bu iki özelliği uygulamalarınızda görsel amaçlı olarak da kullanabilirsiniz. readyState değeri; AJAX ile yapılan HTTP isteğinin 5 ayrı durumuna 0 - 4 arası bir değer atar. Bu değerlerin anlamları; Kod:
status ise; HTTP isteği sunucunda gelen durum kodunu belirtir. Aldığı farklı değerlere göre uygulama daha da geliştirilebilir. Eğer tüm işlemler doğru bir şekilde tamamlanmışsa, alacağı değer 200 (OK)'dir. (status özelliğinin dışında, statusText de kullanılabilir. Aradaki tek fark, gelen değerin kod değil de kod açıklaması şeklinde -örn. OK- gelmesidir) - responseText ve responseXML AJAX ile yapılan bilgi alışverişine karşılık dönen sonuçlardır. responseText, string değer döndürürken; responseXML ise XML ağacını DOM kullanarak yazdırmayı sağlar. İşbu tüm özelliklere göre, AJAX bağlantısı açıldıktan sonra gelen veriler şu örnekteki gibi alınabilir ve kullanılabilir: sayfa.htm: HTML-Kodu: <html> <head> <title>AJAX Uygulaması Denemesi</title> <script language="JavaScript"> function ajax() { var xmlhttp = false; if(window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else if(windows.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert('Tarayıcınız XMLHttpRequest nesnesini desteklemiyor!'); return false; } xmlhttp.open('GET', 'isim.php?ad='+document.form1.isim.value, true); xmlhttp.onreadystatechange = function { if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById('sonuc').innerHTML = xmlhttp.responseText; } } xmlhttp.send(xxxx); } </script> </head> <body> <form name="form1"> <input name="isim" type="text" value="Isminizi yazin..."> <input type="button" value="AJAX'la Yolla!" onClick="ajax();"> </form> <hr /> <div id="sonuc"></div> </body> </html> PHP- Kodu:
__________________ PAYİDAR . NET ENES KÖSE . KoC |
![]() |
|
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Konu Seçenekleri | |
| Gösterim Modu | |
|
|
| | ||||
| Konu | Yazar | Forum | Cevaplar | Son Mesaj |
| Ajax Yok! | Juventus|F.C | Diğer | 3 | 24.08.06 04:33 |
| Son Dakika Haber (Javascript) | KoC | Web Tasarım Dersleri | 0 | 20.07.06 19:20 |