Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  ingilizce "Asynchronous JavaScript and XML" kelimelerinin kısaltmasıdır.

Web teknolojisi temel olarak, istemcinin (istemci web sayfasına bakan biz ve tarayıcımız oluyor) sunucuya bir istekte bulunması (bu da bir linke tıklamak veya tarayıcıya direk bir adres yazmak olabilir),
sunucunun bu istek sonucunda bize yeni bir sayfa hazırlayıp göndermesi şeklinde çalışır. Dikkat edilirse burda sunucunun tüm istekler için sonuç olarak sayfalar ürettiğini görebiliriz. Web'in mümkün olduğu kadar çok kullanıcıya hizmet etmesi gerektiği düşünülürse, sunucunun tekrar tekrar sayfa görünümleri hazırlamak için uğraşması vakit kaybına yol açmaktadır.

İşte bu noktada ajax'tan bahsedebiliriz. İstemci bir istekte bulunduğunda bu istek sunucu yerine önce ajax motoruna(web sayfasını geliştiren kişinin yazdığı bazı javascript fonksiyonları) gider. Ajax moturu, yani scriptler -ki bunlar istemcinin bilgisayarında çalıştıkalrı için sunucuya yük getirmezler- isteği değerlendirip sunucudan sadece gerekli ve yeni bilgileri alırlar ve sayfanın içinde gösterirler.

Örnek verecek olursak, bizim büyük bir portal sayfamız olsun, bu sayfada çok çeşitli bilgileri gösteriyor olabiliriz, (konser tarihleri, vizyondaki filmler, popüler kitaplar...) kullanıcı sadece vizyondaki filmler için farklı bir il seçerse, ajax motoru sunucudan yeni film listesini alır ve sayfada sadece ilgili kısmı değiştirir. böylece tüm sayfa değişmeden etkileşim gerçekleşmiş olur.

Ajax konusunda bahsetmek gereken önemli bir noktada, "asenkron" olmasıdır. Bu şu demektir: istemci yukardaki örnekte olduğu gibi farklı bir şehir seçerek bir istemde bulunduğunda, ajax motoru sunucudan yeni film listesini ister ama sonuç gelene kadar beklemez, yani tarayıcı veya sayfa donmaz.
kar
01 Aralık 2005 11:16
2.  Ben dahil çoğu web programcısının 6-7 seneden beridir iframe + DHTML DOM + JavaScript kullanarak gerçekleştirdiği fasiletinin ambalajlanmış yeni versiyonu. Özellikle Google'ın kullanımıyla (bakınız: gmail, google suggest) popülerliği arttı. Eleştiriyor muyum? Hayır. Bilakis illegal yollardan, taklalar atmak suretiyle yaptığımız işin AJAX adıyla standartlaştırılmış olmasından memnunum.

Ajax; XML DOM, DHTML DOM ve Javascript ile iş görür. Bizim eski tekniğimizdeki iframe'in yerini XML almıştır yani. Peki çok farklı mıdır bunlar? Kesinlikle değil. Çünkü iframe'in içindeki HTML de sonuçta XML'in bir alt kümesidir.

Şu açıdan seviniyorum:
Sayfa yeniden yüklenmeden dinamik olarak değişen veri göstermek için web platformunda attığımız taklaları masaüstü uygulama geliştiren programcılar beğenmez, burun kıvırırlardı. Hatta web uygulaması geliştirmenin daha avantajlı olduğu durumlarda bile web yerine masaüstü uygulama geliştirme yoluna giderler, sebep olarak da bizim taklaları gösterirlerdi. Bu programcılar AJAX ambalajını olumlu bir gelişme olarak görüyor ve bu sayede web'e ısınıyorlarsa ne ala.
fizikci
01 Aralık 2005 12:16
3.  Sıkı bir AJAX örneği olarak meebo verilebilir.
fizikci
04 Nisan 2006 02:33
4.  Son derece kolay kullanımlı bir teknoloji. Ne kadar kolay olduğunu göstermek için bir örnek yazmak istedim gecenin bu vaktinde. Örneğimiz şunu yapacak: Sayfa içerisindeki bir butona tıklayacaksınız butonun altına serverdan "Merhaba Dünya" yazısı gelecek. Hem de sayfa tekrar yüklenmeden. Şeffaf olarak.

Bunun için üç tane kod dosyası oluşturacağız :

1. merhaba.html :
<input type="button" onclick="merhabaYaz()"><br>
<span id="mesaj"></span>

<script src="merhaba.js"></script>

2. merhaba.js :
var xmlHttp;

function merhabaYaz()
{
   xmlHttp = GetXmlHttpRequest(cevapGeldiii);
   xmlHttp.open("GET", "merhaba.php", true);
   xmlHttp.send(null);
}

function cevapGeldiii()
{
   if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      document.getElementById("mesaj").innerHTML = xmlHttp.responseText;
}

function GetXmlHttpRequest(cevapGelinceCalisacakOlanFonksiyon)
{
   var objXmlHttp = null;

   if (navigator.userAgent.indexOf("MSIE") >= 0)
   {
      var objName = "Msxml2.XMLHTTP";
      if (navigator.appVersion.indexOf("MSIE 5.5") >= 0)
         objName = "Microsoft.XMLHTTP";

      objXmlHttp = new ActiveXObject(objName);
      objXmlHttp.onreadystatechange = cevapGelinceCalisacakOlanFonksiyon;
      return objXmlHttp;
   }

   if (navigator.userAgent.indexOf("Mozilla") >= 0)
   {
      objXmlHttp = new XMLHttpRequest();
      objXmlHttp.onload = cevapGelinceCalisacakOlanFonksiyon;
      objXmlHttp.onerror = cevapGelinceCalisacakOlanFonksiyon;
      return objXmlHttp;
   }
}

3. merhaba.php :

<?
   echo "Merhaba Dünya";
?>

Butona tıklanınca merhabaYaz() fonksiyonu çağrılıyor. Bu fonksiyon önce bir XmlHttpRequest nesnesi oluşturuyor. Bunun için GetXmlHttpRequest fonksiyonunu kullanıyor. Çünkü bu iş farklı browserlarda farklı şekilde yapılıyor. Dikkat edilirse GetXmlHttpRequest fonksiyonuna parametre olarak cevapGeldiii() fonksiyonu gönderiliyor. Cevap geldiğinde (aslında xmlHttp'nin durumu değiştiğinde) bu fonksiyon çağrılsın diye. Bu fonksiyonun yaptığı şey ise butonun altındaki span elementinin içine gelen cevabı yazmak. Cevap merhaba.php'nin çıktısı tabi.
fizikci
04 Nisan 2006 03:18
5.  Biz de ajax ile bir post örneği verelim.
//XMLHttpRequest nesnesi oluşturuyor.
function requestFactory(){
   var req=null;
   if( window.XMLHttpRequest){
      req = new XMLHttpRequest();
   }else if( window.ActiveXObject ){
      try{
         req = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
         try{
            req = new ActiveXObject("Microsoft.XMLHTTP");
         }catch(e){}
      }
   }
   return req;
}

//url: post yapılacak adres
//params: parametreler; map şeklinde
//sfunc: başarılı çalışma sonrası çağırılacak fonk.
//      {req parametresi ile çağırılıyor.(response'u alabilmek için)}
//ffunc: başarısız olma durumunda çağırılacak fonk.
//lfunc: 1,2 ve 3. statelerde (çağırma esnasında) çağırılacak fonk.
function post(url,params,sfunc,ffunc,lfunc){
   var req=requestFactory();
   if(!req){
      alert("XMLHttpRequest oluşturulamadı!");
      return false;
   }
   if(!sfunc)
      return false;//burayı modifiye edebilirsiniz...
   if(!ffunc)
      ffunc=function(){};
   if(!lfunc)
      lfunc=function(){};

   req.open("post",url,true);
   req.onreadystatechange=function(){
      if( req.readyState == 4 ){
         if( req.status == 200 ){
            sfunc(req);
         }else{
            ffunc();
         }
      }else{
         lfunc();
      }
   };
   
   req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   req.setRequestHeader("Connection", "close");
   
   var parameters="";
   for( i in params ){
      if(parameters == "" ){
         parameters=i+"="+params[i];
      }else{
         parameters=parameters+"&"+i+"="+encodeURI(params[i]);
      }
   }
   req.send(parameters);
   return true;
}


Yukarıdaki kodu bir js kütüğüne kaydedip; sayfalarınızda bu kütüğü içerip;
post(url,params,sfunc,ffunc,lfunc) fonksiyonunu çağırarak kullanabilirsiniz.
url: post yapılacak adres
params: parametreler; gönderilecek parametreleri:
arr["ilkparam"]="degeri"; şeklinde doldurup bu array'i verirseniz tamamdır.
sfunc: başarılı çalışma sonrası çağırılacak fonk.(success)
ffunc: başarısız olma durumunda çağırılacak fonk.(fail)
lfunc: 1,2 ve 3. statelerde (çağırma esnasında) çağırılacak fonk.(loading) Mesela post işlemi uzun sürecekse, sayfanın ortasına bir div içinde "loading" yazısı çıkarıp, kullanıcıya şenlikli şeyler gösterebilirsiniz :)
sertw
06 Nisan 2006 14:21
6.  Zamanında, deli gibi kasıp, yazdığımız şey. Tabi biz buna falan koymamıştık, bi de sadece internet explorer'a destek veriyorduk.

XML'in ilk zamanları olan o dönem, web uygulamalarımızın, normal uygulamalar gibi olması ile övünürdük şirket olarak.

Sonra bu naneleri çıkardılar, çok da güzel ettiler. Ajax kütüphanelerinin hemen hepsi bütün browserlarda çalışıyor. Üzerine geliştirilmiş bir dolu kütüphane, bileşen vs. var. Koptu gitti bu iş.. Ne güzel
red
23 Mayıs 2006 10:50
7.  En iyi ajax tabanlı uygulama geliştirme ortamı için :

bkz. Ruby on Rails
MrOK
20 Haziran 2006 16:49
8.  Ayrıca "ajaks" diye okunur.
MrOK
20 Haziran 2006 16:50
9.  web tarayıcısının ayrı bir nesne kullanarak istekte bulunmasından oluşan veri alış veriş yöntemi ASP.Net 2.0'a entegre olanı Atlas ismini* almıştır. ASP.Net 1.x'te sadece veri gösterme amaçlı kullanmak oldukça kullanışlıdır ancak bir DropDownList item ekleme işini bunla yapınca kendi nesnesi olmadı için DropDownList1.SelectedIndex gibi özellikleri alınamaz sadece Request.Form ile okunabilir.
Aynı miktarda veriyi AJAX la çağırdığınız zaman* Direk browserdan daha hızlı gelir sanki* sebebi bilinmemektedir.
moh
21 Haziran 2006 11:05
10.  asenkrona bir örnek daha:
pageflakes.com
yaseminn
05 Eylül 2007 00:29
11.  bkz: Prototype Javascript Framework
fizikci
10 Eylül 2007 11:45
12.  hollanda ligi takımlarından, ayrıca eskiden reklamları bile olan bir deterjan markası. bir de programsal olanı vardır bu dış çevreler tarafından eycaks diye okunur ms programcıları en azından böyle okuyor.
prgsrr
10 Ekim 2007 04:56
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1453 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen