Öncelikle bilmemiz gereken AJAX ‘ın Tarayıcıdan Tarayıcıya farklılıokay gösterdiğidir.
internet Explorer ActiveXObject, MSXML kullanırken Gecko Türü Tarayıcılar(Firefox, Netscape, Safari), Opera
XMLHttpRequest Nesnesini kullanır. Bu nedenle istersek Sadece internet Explorer ‘a ya da Gecko Türü Tarayıcılara
ayrı ayrı kod yazabilir ya da belirli nesnel testlerle tüm tarayıcılarla uyumlu bir ajax kodu oluşturabiliriz.
urun=60;
sid=11763;
channel=12860;
banner=628;
kategori=19;
w=300;
h=250;
wmid=4135;
domain =”tahaerakay.com”;
tip=”Banner”;adsrv=1;jsai=”1a7d70b67e83bd37″;
1- web Explorer ‘ın AJAX anlayışı…
Dünyada en çok kullanılan tarayıcısı web Explorer, home windows ‘un güncelleme sisteminin temelini oluşturan
ActiveXObject ile AJAX ‘a gözlerini açtı. Daha sonrasında ise MSXML ve bunların versiyonlarını geliştirerek
daha aktif ve kararlı bir yapı oluşturmayı hedefledi ve başardıda…
internet Explorer ‘ın en eski AJAX sistemi ActiveXObject nesnesi ve Microsoft.XMLHttp ile oluşur. web Explorer 4 ‘de
bu nesneyi kullanır. 5 ve sonrasında home windows ‘un güncellik derecesine göre MSXML2.XMLHttp.5.zero", "MSXML2.XMLHttp.4.zero", "MSXML2.XMLHttp.three.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"
Nesneleri daha kararlı yapılar sunar.
2- Opera, Safari, Firefox, Netscape
Bilindik tek Nesneye dayanır. Bu da XMLHttpRequest Nesnesidir.
Elimizdekileri ortaya dökelim;
internet Explorer için elimizde: MSXML2.XMLHttp.5.zero", "MSXML2.XMLHttp.four.zero", "MSXML2.XMLHttp.3.zero", "MSXML2.XMLHttp", "Microsoft.XMLHttp"
Gecko için elimizde: XMLHttpRequest
O halde AJAX Fonksiyonumuzu yazmaya başlayalım.
AJAX Fonksiyonunda şunları göz önüne almamız gerekiyor.
1- Veri Gönderme şeklini GET ile mi put up ile mi yapacağımız.
2- Async bağlantı türü kullanıp kullanmayacağımız.
3- Bir de Cache Kullanıp kullanmayacağımız
Cache: Aynı ajax fonksiyonununu 1. kullandığımızda AJAX çalışı ve verileri bize getirir. Fakat aynı fonksiyonu bir kere
daha kullanmak istediğimizde ise 1. de getirdiği bilgileri AJAX ‘ı çalıştırmadan direk bellekten verir. Tabi bunun
kullanımı bize kalmış.
Kod Planımız şöyle. Bir değişkene olutşurduğumuz nesneyi atayacağız ve tüm işlemleri bu değişkenden yapacağız.
Kod:
perform create_ajax() // AJAX Nesnesi olarak kullanacağımız değişkenin başlangıç değeri var ajaxobject = null; // Burada Bir iki take a look at gerekiyor. Bunlardan ilk olarak Tek Nesne olduğu için XMLHttpRequest ‘i deneyelim. // Bu değişken de AJAX Nesnesini Oluşturup oluşturamadığımız konusunda bize fikir sağlayacaktır. var found = false; are trying ajaxobject = new XMLHttpRequest(); discovered = real; // Evet Oluşturduk! Tarayıcımız Gecko Türü bir tarayıcı seize(e) // Eğer oluşturamadıysa internet Explorer ‘ı deneyelim // Microsoft un Tüm XMLHttp Nesneleri var MicrosoftObjects = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"]; // Sırasıyla deneyelim for (var i = 0; i <= MicrosoftObjects.size; i++) if (!MicrosoftObjects[i]) damage; are attempting var ajaxobject = new ActiveXObject(MicrosoftObjects); found = real; // Kaçamazsın Bizden! Tarayıcımız internet Explorer damage; catch(f) // Yukarıda ki XMLHttp Nesnelerinden biri ile uyumlu değil. Bir Sonrakini deneyelim if (!discovered) // Tarayıcımızın AJAX desteği yok… alert(‘Bu işlemi gerçekleştirmek için AJAX Destekli Bir Tarayıcıya ihtiyacınız olacak’); return null; return ajaxobject; // Tarayıcımız AJAX destekli ve kullanıma hazır.
Evet Bu noktada açıklamalı olarak AJAX Nesne oluşturucumuzu tamamladıok. Bundan sonraki işlevler şöyle;
Kod:
// GET ile AJAXvar ajax = create_ajax(); // AJAX Oluşturmaya çalışıyoruzif (ajax) // Eğer AJAX Oluşturulduysa yani değer null değilse var url = ‘index.php’; // AJAX Sorgusu yapacağımız url // Yukarıda Cache ‘in ne olduğundan bahsetmiştim. var nocache = ((url.indexOf(‘?’) != -1) ? ‘&’ : ‘?’) + ‘nocache=’ + Math.random(); // Eğer Cache Kullanımı istemiyorsak; url += nocache; ajax.open(‘GET’, ‘index.php’, authentic); // AJAX açılışı ajax.onreadystatechange = perform() // AJAX Sorgusu tamamlandığı gelen verileri işleyeceğimiz durum if (ajax.readyState == four && ajax.standing == 200 && ajax.responseText) alert(ajax.responseText); // Gelen Sorgu ; ajax.ship(null);
Örnek Kod:
Kod:
[i]<html><body><input sort="button" value="Bu Sayfanın Kaynak Kodlarını ver" model="font: bold 11px Tahoma" onclick="alert_source_codes()" /><script kind="textual content/javascript"><!–function create_ajax() // AJAX Nesnesi olarak kullanacağımız değişkenin başlangıç değeri var ajaxobject = null; // Burada Bir iki take a look at gerekiyor. Bunlardan ilk olarak Tek Nesne olduğu için XMLHttpRequest ‘i deneyelim. // Bu değişken de AJAX Nesnesini Oluşturup oluşturamadığımız konusunda bize fikir sağlayacaktır. var discovered = false; are trying ajaxobject = new XMLHttpRequest(); discovered = actual; // Evet Oluşturduk! Tarayıcımız Gecko Türü bir tarayıcı catch(e) // Eğer oluşturamadıysa internet Explorer ‘ı deneyelim // Microsoft un Tüm XMLHttp Nesneleri var MicrosoftObjects = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"]; // Sırasıyla deneyelim for (var i = 0; i <= MicrosoftObjects.size; i++) if (!MicrosoftObjects[i]) damage; try var ajaxobject = new ActiveXObject(MicrosoftObjects); discovered = genuine; // Kaçamazsın Bizden! Tarayıcımız web Explorer ruin; catch(f) // Yukarıda ki XMLHttp Nesnelerinden biri ile uyumlu değil. Bir Sonrakini deneyelim if (!discovered) // Tarayıcımızın AJAX desteği yok… alert(‘Bu işlemi gerçekleştirmek için AJAX Destekli Bir Tarayıcıya ihtiyacınız olacak’); return null; return ajaxobject; // Tarayıcımız AJAX destekli ve kullanıma hazır.operate alert_source_codes() var ajax = create_ajax(); // AJAX Oluşturmaya çalışıyoruz if (ajax) // Eğer AJAX Oluşturulduysa yani değer null değilse var url = ‘index.php’; // AJAX Sorgusu yapacağımız url // Yukarıda Cache ‘in ne olduğundan bahsetmiştim. var nocache = ((url.indexOf(‘?’) != -1) ? ‘&’ : ‘?’) + ‘nocache=’ + Math.random(); // Eğer Cache Kullanımı istemiyorsak; url += nocache; ajax.open(‘GET’, ‘index.php’, proper); // AJAX açılışı ajax.onreadystatechange = function() // AJAX Sorgusu tamamlandığı gelen verileri işleyeceğimiz durum if (ajax.readyState == four && ajax.standing == 200 && ajax.responseText) alert(ajax.responseText); // Gelen Sorgu ; ajax.ship(null); //–></script></html>