Bazı durumlarda belirli bir sürede (Örneğimizde bu 5 saniyede birdir) belirli bir veriyi devamlı değiştirmemiz gerekebilir. Bu durumda ajax kullanmamız en mantıklı seçim olacaktır. Aşağıdaki örneğimizde bu olayı daha iyi anlatabilmek için ben 5 saniyede bir rastgele(random) sayı üreten bir asp sayfası (rastgele_sayi_uret.asp) ve onu 5 saniyede bir çağıracak bir başka sayfa (index.asp) oluşurdum. Örneğin çalışan şekli aşağıdaki gibidir. Uygulamanın indirme linkini makale sonunda bulabilirsiniz. Örneği sağlıklı görmek açısından sayfanın tam yüklendiğinden emin olunuz.
Your browser does not support iframes.
1.Şimdi ilk olarak “index.asp” sayfamızın kodlarına bakalım.
<html> <head> <meta http-equiv="Content-Language" content="tr"> <script type="text/JavaScript" language="JavaScript"> var xmlHttp=false; try { xmlHttp = new ActiveXObject("Msxml2.xmlHttp"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.xmlHttp"); } catch (E) { xmlHttp = false; } } if (!xmlHttp && typeof XMLHttpRequest!='undefined') { try { xmlHttp = new XMLHttpRequest(); } catch (e) { xmlHttp=false; } } if (!xmlHttp && window.createRequest) { try { xmlHttp = window.createRequest(); } catch (e) { xmlHttp=false; } } function callServer(){ //burada çağiracağin sayfayı yazarsın var url = "rastgele_sayi_uret.asp" + "?tarih=" + new Date().getTime(); xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = updatePage;{ if (xmlHttp.readyState==4) { alert(xmlHttp.responseText) } } xmlHttp.send(null) } function updatePage(){ //4 sorun yoksa demek if(xmlHttp.readyState == 4){ //gelen cevap var response = xmlHttp.responseText; //hangi div gelcekse buraya yazılcak sonuc.innerHTML = response; //500 milisaniyede bir fonksiyonu cağirir setTimeout('callServer()',5000); } } callServer('url'); //sonuc adlı divin stil dosyasını ayarlıyoruz , //bu bölümü kafanıza göre değiştirebilirsiniz.. </script> <style type="text/css"> .style1 { font-family: 00222; font-size: xx-large; border:thin #000000 solid; background: #FFCC00; width: 100%; height: 41px; text-align: center; color: #000000; } </style> </head> <div id="sonuc" class="style1"></div>
2.Rastgele bir sayı üretip ekrana yazdıran asp dosyamızın “rastgele_sayi_uret.asp” kodlarıda aşağıdaki gibidir.
<%'asp de rastgele sayı üretip sayi değişkenine atiyoruz..Randomize
sayi = int((Rnd * 100 )+1 )
%><%=sayi%>
Uygulamada tam olarak yaptığımız javanın settimeout olayını kullanarak ajax post işlemini devamlı yaptırmaktan ibarettir. Gelen cevap id “sonuc” olan div içine 5 saniyede bir yüklenmektedir. Kodların içinde gerekli açıklamalar mevcuttur. Kolay gelsin…
Acaba bu kodları facebook tarzı bir yorum ekleme kodlarına nasıl entegre edebiliriz ve eğer entegre başarılı olursa başka bir kişinin yaptığı yorumuda görebilir miyiz?
tabi entegre edebilirsiniz sonucta bu yaptiğimiz işlem bi kodu arkaplanda çaliştirmaktan ibaret. Şu şekil anlatırsam databaseden yorumları çeken bir asp dosyasını 5 saniyede bir çağirdiğiniz zaman istediğiniz işlem gerçekleşecektir.