Root > Documents > Programlama > Adım adım AJAX
Cyber-Warrior.Org \ Doküman \ Programlama > Adım adım AJAX
Madde
  Yazar : capella
  Date : 01.06.2006 22:08:19
 
# Adım adım AJAX
 

Adim adim AJAX

AJAX web gelisimi içerisinde birçok programciyi heyecanlandiran son ve büyük bir seydir. Bu baslik AJAX için Microsofta adim adim bakis demektir.

Bu özellik Herkules ile dövüsen lliad dan gelmiyor. Fakat web gelisimi içerisindeki en son ve en gelismis olanidir.(hiç olmazsa birkaç taneden birisi). Google web de büyülü bir sekilde genisleyerek büyüdügünden beri AJAX ile google haritalari yapildi. Bununla beraber biz genel olarak AJAX’i yazmak için Microsoft yoluna bakiyoruz. Tipki benim önceki ögreticim gibi. Bu kisa tanitimdan sonra adim adim bütün yollar burada.

Web Uygulama Gelistirme

1992’den beri gelistiriciler merhametsizce çok cazip,çok üretici ve çok interaktif yollari takip ettiler. Düz html kodlarinin dogusunu hemen imaj yerlestirme ve bunu cazip renkler kullanarak stil kagitlari tarafindan yapilarak verildi. Fakat kullanicilara Java Script için ayrilmisti ve bu nedenle yazi dili altin çagina döndü.

Bununla birlikte 2 ana sunucu web alani paylasiyordu. Ve kullanicilarin isini görmek için iki dil vardi. (3.olani ECMA - sonradan geldi) Bu yeterli degildi ve DHTML dogmustu. Yeni bir dil degildi fakat iyi bir html karistiricidir. CSS ve Java Script kullanicilari için asiri caziptir.

AJAX sayfayi yenileme ihtiyaci olmadan uzun bir süre cevap veriyir  Bunun mümkün olabilmesi için ilk olarak Microsoft’un ActiveX teknolojisi yapiyordu. Simdi artik XHTML, CSS, JavaScript, XmlHttpRequest, ve XML, ve o DHTML bu yeni teknolojinin içinde yer aliyor.

Örnek AJAX daki Garret’s den türer. Örnek AJAX gibi klasik bir çift interaksiyon gösterir. Klasik versiyonunda müsteri bir HTTP(s) davetiyesi gönderir servera,server bunu görür. AJAX modelinde müsteri AJAX a Java Script gönderir ve AJAX webservera XML yapabilen bir davet gönderir WEB/XML sunucusu XML den gelen cevaplari yollar.Sonuçlari çevirmek için XHTML ve CSS içinden DOM üzeriden yardim alir.

XMLHttpRequest Object ile beraber çalismak için bir anahtar nesneye ihtiyaç vardir. Bu obje iki kisimdan olusur. Bu httpRequest tir. Sonra o XML yöntemidir. Bu ActiveX Object gibi Internet Explorer 5 ve Windows için yeterince gelistirilmis idi.Bu Mozilla 1,0.Apple ve diger formlar ile birlikte yerine getirilmisti. W3C DOM Level 3 özellikleri için benzer bir standarttir.

XML HttpRequest nesnesi olusturmak

Bu kolay bir kisimdir.Mozilla için:

var xhr=new XMLHttpRequest();

Internet Explorer için:

var xhr=new ActiveXObject("Microsoft.XMLHTTP");

Bu metodlar kullanicilar için gizli nesneleri içerir.BU kisa listeyi bütün browser lar paylasirlar.

abort()

    mevcut istegi sonlandir

getAllResponseHeaders()

    baslik bilgisindeki tüm veriyi alir

getResponseHeader ("headerAdi")

    istenen baslik bilgisinin verisini alir

open("method", "URL"[,asyncFlag[,"userName"[,"password"]]])

    herhangi bir veriyi atamada kullanilir

send(content)

    Gerekli olucak veriyi yollamak için kullanilir

setRequestHeader ("eitket", "deger")

    baslik bilgisine etiket degeri eklemek için kullanilir

URL tamamlanabilir ya da baglanabilir. 3.parametre ki opsiyonel(yanlis ve dogru) ayarlari içerir.

Parametreleri takip etmek (bütün serverlar için geçerli)

onreadystatechange

    Durum degisikligini kontrol eder

readState

    Tam sayi degerleri durum bilgisini belirtir

    0 = uninitialized

    1 = loading

    2 = loaded

    3 = interactive

    4 = complete

responseText

    String formatinda veriyi yollar

responseXML

    Veriyi DOM formatinda yollar

status

    Server in durumunun sayisal degeri

    404: Not found

    200: OK

statusText

    Durumla gelen yazi degeri

AJAX ile çalismak sessizdir.Html dosya adi : AjaxTest.html. Özellikle bir XMLHTTP Request Object yaratmaya ihtiyacimiz var.Sayfaya geri alindigindan beri GET kullanilir.Open ( ) için TRUE methodu kullanilir.

<SCRIPT LANGUAGE=javascript>

<!--

var xhr = false;

function getPage (url) {

                        xhr = false;

//this is the Microsoft browser compatible instantiation

                         xhr = new ActiveXObject("Microsoft.XMLHTTP");

                         if (!xhr) {

            alert (’XMLHttpRequest failed to instantiate’);

            return false;

        }

        xhr.onreadystatechange = statusCheck;

        xhr.open (’GET’, url, true);

        xhr.send (null);

                        }

function statusCheck() {

            txt1.value="XmlHttpRequest_Status: " + xhr.status;

 

            txt2.value="XmlHttpRequest_readyState: " + xhr.readyState;

           

            TEXTAREA1.value="XmlHttpRequest_getallResponseHeaders(): " +

                        xhr.getAllResponseHeaders();

            txt5.value="XmlHttpRequest_statusText: " + xhr.statusText

      

        if (xhr.readyState == 4) {

                                               if (xhr.status == 200) {

                                                           alert(xhr.responseText);

       document.getElementById("x").innerHTML =(xhr.responseText);

            } else {

                alert (’There was a problem with the request.’);

            }

        }

 

    }

//-->

</SCRIPT>

 

Eger DOM API sini kullanirsaniz asagidaki kodlara göz atiniz;

AjaxTest.htm sadece belli kontrol özelliklerine sahitptir ve bunun degerleri gosterilir. OnClick olayi islemin aktif oldugunu göstermektedir. innerHTML özellikleride DIV tagina yazilacaktir.

<P><STRONG><SPAN

style="FONT-SIZE: large; COLOR: red">A</SPAN>synchronous <SPAN

style="FONT-SIZE: large; COLOR: red">J</SPAN>avascript <SPAN

style="FONT-SIZE: large; COLOR: red">A</SPAN>nd <SPAN

style="FONT-SIZE: large; COLOR: red">X</SPAN>ML= <SPAN

style="FONT-SIZE: large; COLOR: blue">AJAX</SPAN></STRONG></P>

<P>

</P>

<P> </P>

<P><INPUT id=button1 type=button

onclick="getPage (‘ornek.asp’)"

value="Get the page by XmlHttpRequest" name=button1></P>

<P><INPUT id=txt1 style="WIDTH: 396px; HEIGHT: 22px" size=51></P>

<P><INPUT id=txt2 style="WIDTH: 395px; HEIGHT: 22px" size=50></P>

<P><TEXTAREA id=TEXTAREA1 style="WIDTH: 393px; HEIGHT: 72px"

name=TEXTAREA1 cols=42></TEXTAREA></P>

<P><INPUT id=txt5 style="WIDTH: 389px; HEIGHT: 22px"

size=50></P>

<div id="x"></div>

Ajax kodlarinda belirttigimiz ornek.asp dosyasi:

<%@ Language=VBScript %>

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

<script language="javascript">

document.write (document.lastModified);

</script>

</HEAD>

<BODY>

<%Response.Write("<b>Welcome to programming with AJAX</b>")%><br>

<% =Date()%><br>

Hello<br>

</BODY>

</HTML>

 

Bu doküman Jayaram Krishnaswamy tarafindan hazirlanmis olup Haberci grubu adina Capella tarafindan Türkçe’ye çevirilmistir.

 

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©