SlideShare a Scribd company logo
1 of 22
Download to read offline
AJAX
              Ahmet Demirelli
            ahmetdemirelli@sabanciuniv.edu
                SCJP 5.0, SCWCD 1.4




                                                Sabancı Üniversitesi
                                                 Bilişim Teknolojileri
                                             Yüksek Lisans Programı
3/20/2007          Sabanci University                             1
Ajanda
    Neden AJAX ihtiyacı
        HTML
        Javascript
    AJAX
    AJAX Avantajları
    AJAX Dezavantajları
    Örnek Ajax Uygulamaları
    Demo




3/20/2007                 Sabanci University   2
Neden AJAX ihtiyacı
                  Basit bir web uygulaması

                        Girdi Kontrol                                    Girdi Kontrol
                                                         Listele
Urün Ismi Gir
                    Veritabanı bağlantısı                            Veritabanı bağlantısı
                                                        Ürün seç
    Ara
                    Geridönen sonuçlar                               Geridönen sonuçlar
                                                        Satın Al




                        Girdi Kontrol
 Kredi Kartı                                          Satın Alımın   Verilerin Veritabanına
                    Kredi Kartı Onaylama
Adres Bilgileri                                       Onaylanması      Girilmesi ve onay
                    Veritabanı bağlantısı
   Submit




                                                                        şlem Başarıyla
                                                                        Gerçekleştirildi
      3/20/2007                             Sabanci University                                3
Neden AJAX ihtiyacı
    Her işlem için ayrı bir sayfa görüntüleme
    Her işlemin sunucuya (submit) gönderilmesi
     şlem gerçekleştikten sonra yeni bir sayfaya
    yönlendirme
    Her yönlendirme sonucunda sayfaların yeniden
    yüklenmesi




3/20/2007              Sabanci University          4
Neden AJAX ihtiyacı
                                                              Urun Listesi
Satın Alma                                                     Bileşeni
                        Hatalar
                                             şlemler
                         (DIV)
  Urun Listesi (DIV)
                                                                    Kredi Kart
                                          Girdi Kontrol
                                                                     Bileşeni
                                       Veritabanı işlemleri
Kredikart Formu (DIV)

                                       Hataların bulunması
                                                                      Fatura Bilgileri
 Adres Formu (DIV)
                                                                         Bileşeni
                                             Arayüz




                        HTML bunun için yetersiz kalır


  3/20/2007                           Sabanci University                                 5
HTML
    Static içerik
    Kullanıcı etkileşimi yetersiz
    Yardımcı teknolojiler
        CSS
        Javascript
        Flash
        Appletler
        .....




3/20/2007                 Sabanci University   6
Javascript
    Lightweight programlama dili
    Browser tarafından yorumlanır
    Kullanıcı etkileşimini arttırır
    Web sayfalarını hareketlendirir.
    Fakat gerçekleşen etkileşim sadece istemci
    hafızasında kalır (on the fly)




3/20/2007                 Sabanci University     7
AJAX
    AJAX (Asynchronous JavaScript and XML)
    Bir web uygulama geliştirme tekniğidir.
    Basit olarak; javascript kullanarak sunucuya bilgi
    göndermek ve gelen bilgiyi aynı sayfada
    göstermektir.
    Bu yüzden web sayfalarının masaüstü(desktop)
    uygulamalar gibi davranmasını sağlar.
    Web uygulamalarına getirdiği yeniliklerden dolayı
    Ajax uygulamaları “Web 2.0” uygulamaları olarakta
    adlandırılır


3/20/2007               Sabanci University               8
Nasıl Çalışır ?
                  HTTP

                                       HTML
JavaScript


                  AJAX



            CSS                        XML


                  DOM

3/20/2007         Sabanci University          9
Nasıl Çalışır ?
<script type=“text/javascript”>                          Bilgi Listele Servlet
         XMLHttpRequest                                         bilgileriAlServlet( req, res) {
                                                                    request bilgilerini al
                                                                    veritabanından bilgiyi çek
                                                                    bilgiyi clienta döndür
    function sonucIsle() {
                                                                }
    …sunucudan gelen mesajı al
    …mesajın yazılacağı nesneyi al
    …mesajı yaz
    }


     function illeriGoster() {
     … yeni request nesnesi (url, parms)
     … callback fonksiyonu belirle
     (sonucIsle())
                                                                      Uygulama
     … sunucuya gönder
     }
                                                                      Sunucusu
                       Adana
                       Adıyaman
     A                 Afyon
                       .....

         3/20/2007                         Sabanci University                                     10
XmlHttpRequest
    1999 yılında Internet Explorer 5 ile çıktı
        Web sunucudan gelen callback ler için geliştirilmiş bir ActiveX
        nesnesi
        Outlook Web Access (OWA) te kullanılmak için geliştirildi
    Firefox, Safari ve diğer browserlar tarafından desteklendi
        ActiveX yerine gerçek bir DOM nesnesi olarak geliştirildi
        W3C tarafından standart hale getiriliyor
            http://www.w3.org/TR/XMLHttpRequest/
    Browserların %99 u tarafından desteklenmektedir
    AJAX teknolojisinin temelinde yatan nesnedir




3/20/2007                       Sabanci University                        11
XmlHttpRequest
    XMLHttpRequest nesnesi Javascript ile oluşturulur
    XMLHttpRequest nesnesi oluşturmanın 3 yolu vardır
        Pek çok browser için (IE hariç);
        var request = new XMLHttpRequest();
        Bazı IE versiyonları için
        (Kullandığı MSXML library ne göre değişir)
        var request = new ActiveXObject(quot;Microsoft.XMLHTTPquot;);
        Diğer IE versiyonları için
        var request = new ActiveXObject(quot;Msxml2.XMLHTTPquot;);
    Uygulamanın tüm browserlarda çalışması için en
    doğrusu hepsini yazmaktır


3/20/2007                  Sabanci University                   12
XmlHttpRequest (kod örneği)
function getXMLHttpRequest {
   var request = false;
   try { request = new XMLHttpRequest(); }
   catch(err1) {
      try { var request = new ActiveXObject(quot;Microsoft.XMLHTTPquot;); }
      catch(err2) {
          try { var request = new ActiveXObject(quot;Msxml2.XMLHTTPquot;); }
          catch(err3) {
             request = false;
          }
      }
   }
   return request;
}

  3/20/2007                     Sabanci University                     13
XmlHttpRequest
    XMLHttpRequest nesnesi oluşturulduktan sonra, open
    metodu ile sunucu isteği hazırlanmalıdır.
    request.open(method, URL, asenkron)
       method 'GET' veya 'POST‘ olmalıdır
       URL bilgilerin nereye gönderileceği
            Eğer 'GET‘ kullanılırsa, data URL nin sonuna eklenir
            Eğer ‘POST‘ kullanılırsa, data bir sonraki aşamada eklenir
        asenkron   true, yapılırsa browser sunucudan gelen bilgi
        için beklemez (genelde istenilende budur)
    request.open(method, URL)
        Şeklinde kullanılırsa default asenkron değeri true olur

3/20/2007                      Sabanci University                        14
XmlHttpRequest
    XMLHttpRequest nesnesi oluşturulup hazırlandıktan
    sonra sunucuya send() methodu ile gönderilir
    request.send(null);
        Eğer method olarak ‘GET’ seçilmişse kullanılır
    request.send(bilgi );
        Eğer method olarak ‘POST’ seçilmişse kullanılır
        Örnek:
        request.send('var1=' +value1+'&var2='+value2);




3/20/2007                   Sabanci University            15
Response
    Sunucudan dönen mesajı almak için öncelikle request
    nesnesinin onreadystatechange eventi
    gerçekleştiğinde hangi metodun çalışacağını
    belirtmeli ve metodu yazmalıyız
        request.onreadystatechange = herhangibirFonksiyon;
        function herhangibirFonksiyon() {
           if(request.readyState == 4){
              var response = request.responseText;
                // gelen mesajın görüntülenmesi işlemi burada
            }
        }
        readyState in 4 olması demek gönderilen isteğe karşı bir
        cevap alınmış demektir

3/20/2007                       Sabanci University                 16
Avantajları
    Zengin kullanıcı arayüzü
    Formlardaki bilgilerin tamamını her defasında
    sunucuya gönderilmesine gerek yoktur
    Bu yüzdende network trafiğini azaltır
    Sunucu tarafındaki teknolojiden bağımsızdır. (Sunucu
    tarafında, java,.NET, php, perl...vs teknolojilerden
    herhangibirisi kullanılabilir)
    Sayfanın tamamı yerine bir bölümünün yenilenmesini
    sağlar (asenkron çalışma)
    Sadece submit butonlarıyla sunucuya ulaşmak yerine
    daha fazla event kullanma imkanı sağlar

3/20/2007               Sabanci University             17
Dezavantajları
    Back butonu işlevini kaybeder
    Her browser için ayrı kod yazmak gerekir
    Çalışılan domain dışındaki bir domaine ulaşılamaz
    Eğer javascript disable edilmişse çalışmaz
    Debug edilmesi çok zordur
     yi bir sunucu taraflı programlamanın yanısıra çok iyi
    bir javascript bilgiside gereklidir




3/20/2007                Sabanci University              18
Örnek Ajax Uygulamaları

               t                                    ocs
           ges                                    D
        Sug                                  le
                                         oog
      e
   ogl                                  G
 Go




                                           line
                                          n
                                       oO
                                   Kik vim
   gle heets                                    ı
                                      ak lamas
  o
Go eads                             T
                                       ygu
 Spr                                 U
 3/20/2007         Sabanci University                     19
Örnek Ajax Uygulamaları
    Backbase
        http://www.backbase.com
        http://www.backbase.com/RUI/shop.html

    Real Time HTML Editor
        http://htmledit.squarefree.com/

    Google Maps
    GTalk
    .....




3/20/2007                        Sabanci University   20
DEMO



3/20/2007   Sabanci University   21
ahmetdemirelli@sabanciuniv.edu




3/20/2007              Sabanci University    22

More Related Content

Viewers also liked

Çoklu Etmen Sistem Planlama ve Yeniden Planlaması
Çoklu Etmen Sistem Planlama ve Yeniden PlanlamasıÇoklu Etmen Sistem Planlama ve Yeniden Planlaması
Çoklu Etmen Sistem Planlama ve Yeniden PlanlamasıEmrah Kahraman
 
Etohum Sunumu - Cem Başpınar
Etohum Sunumu - Cem BaşpınarEtohum Sunumu - Cem Başpınar
Etohum Sunumu - Cem BaşpınarBurak Büyükdemir
 
Use of hog descriptors in phishing detection
Use of hog descriptors in phishing detectionUse of hog descriptors in phishing detection
Use of hog descriptors in phishing detectionSelman Bozkır
 
WTK'14 - Veritabanı Sistemleri
WTK'14 - Veritabanı SistemleriWTK'14 - Veritabanı Sistemleri
WTK'14 - Veritabanı SistemleriMuhittin Özer
 
Hacking Uygulamaları ve Araçları
Hacking Uygulamaları ve AraçlarıHacking Uygulamaları ve Araçları
Hacking Uygulamaları ve AraçlarıMustafa
 
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve OnerilerGelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve OnerilerMustafa Ileri
 
Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve Yönetimi
Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve YönetimiAçık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve Yönetimi
Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve YönetimiBilgiO A.S / Linux Akademi
 
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013Hüseyin Mert
 
İlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve Doctrineİlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve DoctrineMuhittin Özer
 
Vendor Lock-in Cloud - Open Stack bulutyazilim
Vendor Lock-in Cloud - Open Stack bulutyazilimVendor Lock-in Cloud - Open Stack bulutyazilim
Vendor Lock-in Cloud - Open Stack bulutyazilimHüseyin Mert
 
PHPUnit ve Laravel
PHPUnit ve LaravelPHPUnit ve Laravel
PHPUnit ve LaravelOsman Yuksel
 
VMWare vs HYPER-V
VMWare vs HYPER-V VMWare vs HYPER-V
VMWare vs HYPER-V Mustafa
 

Viewers also liked (20)

Ajax
AjaxAjax
Ajax
 
Ajax and Jquery
Ajax and JqueryAjax and Jquery
Ajax and Jquery
 
Puppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi OtomasyonuPuppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi Otomasyonu
 
Çoklu Etmen Sistem Planlama ve Yeniden Planlaması
Çoklu Etmen Sistem Planlama ve Yeniden PlanlamasıÇoklu Etmen Sistem Planlama ve Yeniden Planlaması
Çoklu Etmen Sistem Planlama ve Yeniden Planlaması
 
Etohum Sunumu - Cem Başpınar
Etohum Sunumu - Cem BaşpınarEtohum Sunumu - Cem Başpınar
Etohum Sunumu - Cem Başpınar
 
05 sadok kohen
05 sadok kohen05 sadok kohen
05 sadok kohen
 
Use of hog descriptors in phishing detection
Use of hog descriptors in phishing detectionUse of hog descriptors in phishing detection
Use of hog descriptors in phishing detection
 
Php MySQL
Php MySQLPhp MySQL
Php MySQL
 
XML
XMLXML
XML
 
WTK'14 - Veritabanı Sistemleri
WTK'14 - Veritabanı SistemleriWTK'14 - Veritabanı Sistemleri
WTK'14 - Veritabanı Sistemleri
 
Hacking Uygulamaları ve Araçları
Hacking Uygulamaları ve AraçlarıHacking Uygulamaları ve Araçları
Hacking Uygulamaları ve Araçları
 
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve OnerilerGelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
 
Php unit ve tdd
Php unit ve tddPhp unit ve tdd
Php unit ve tdd
 
Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve Yönetimi
Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve YönetimiAçık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve Yönetimi
Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulum ve Yönetimi
 
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
 
İlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve Doctrineİlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve Doctrine
 
Vendor Lock-in Cloud - Open Stack bulutyazilim
Vendor Lock-in Cloud - Open Stack bulutyazilimVendor Lock-in Cloud - Open Stack bulutyazilim
Vendor Lock-in Cloud - Open Stack bulutyazilim
 
PHPUnit ve Laravel
PHPUnit ve LaravelPHPUnit ve Laravel
PHPUnit ve Laravel
 
Jenkins
JenkinsJenkins
Jenkins
 
VMWare vs HYPER-V
VMWare vs HYPER-V VMWare vs HYPER-V
VMWare vs HYPER-V
 

Similar to Ajax

ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)İbrahim ATAY
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Servicedasgin
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriBGA Cyber Security
 
Windows Server App Fabric Introduction
Windows Server App Fabric IntroductionWindows Server App Fabric Introduction
Windows Server App Fabric IntroductionBurak Selim Senyurt
 
ASP.NET MVC V 2.0
ASP.NET MVC  V  2.0ASP.NET MVC  V  2.0
ASP.NET MVC V 2.0BT Akademi
 
Ozgur web teknolojileri'13
Ozgur web teknolojileri'13Ozgur web teknolojileri'13
Ozgur web teknolojileri'13Mehmet Ince
 
Java ee kursu-cekmekoy
Java ee kursu-cekmekoyJava ee kursu-cekmekoy
Java ee kursu-cekmekoysersld60
 
Internet Tabanli Yildiz Teknik Universitesi Bilgi Sistemi
Internet Tabanli Yildiz Teknik Universitesi Bilgi SistemiInternet Tabanli Yildiz Teknik Universitesi Bilgi Sistemi
Internet Tabanli Yildiz Teknik Universitesi Bilgi Sistemicemera
 
Özcan Acar Ankara Cankaya Universitesi Wicket Webframework Sunumu
Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework SunumuÖzcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu
Özcan Acar Ankara Cankaya Universitesi Wicket Webframework SunumuÖzcan Acar
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehirsersld60
 
Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010Evren Ayan
 

Similar to Ajax (20)

Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Web Socket
Web SocketWeb Socket
Web Socket
 
Ajax
AjaxAjax
Ajax
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
 
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Service
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma Testleri
 
Windows Server App Fabric Introduction
Windows Server App Fabric IntroductionWindows Server App Fabric Introduction
Windows Server App Fabric Introduction
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
Web 2.0 Güvenliği
Web 2.0 GüvenliğiWeb 2.0 Güvenliği
Web 2.0 Güvenliği
 
ASP.NET MVC V 2.0
ASP.NET MVC  V  2.0ASP.NET MVC  V  2.0
ASP.NET MVC V 2.0
 
Ozgur web teknolojileri'13
Ozgur web teknolojileri'13Ozgur web teknolojileri'13
Ozgur web teknolojileri'13
 
Java ee kursu-cekmekoy
Java ee kursu-cekmekoyJava ee kursu-cekmekoy
Java ee kursu-cekmekoy
 
sunu (Asp-2)
sunu (Asp-2)sunu (Asp-2)
sunu (Asp-2)
 
Internet Tabanli Yildiz Teknik Universitesi Bilgi Sistemi
Internet Tabanli Yildiz Teknik Universitesi Bilgi SistemiInternet Tabanli Yildiz Teknik Universitesi Bilgi Sistemi
Internet Tabanli Yildiz Teknik Universitesi Bilgi Sistemi
 
Özcan Acar Ankara Cankaya Universitesi Wicket Webframework Sunumu
Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework SunumuÖzcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu
Özcan Acar Ankara Cankaya Universitesi Wicket Webframework Sunumu
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehir
 
Aspnet M V C
Aspnet M V CAspnet M V C
Aspnet M V C
 
Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010
 

Ajax

  • 1. AJAX Ahmet Demirelli ahmetdemirelli@sabanciuniv.edu SCJP 5.0, SCWCD 1.4 Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı 3/20/2007 Sabanci University 1
  • 2. Ajanda Neden AJAX ihtiyacı HTML Javascript AJAX AJAX Avantajları AJAX Dezavantajları Örnek Ajax Uygulamaları Demo 3/20/2007 Sabanci University 2
  • 3. Neden AJAX ihtiyacı Basit bir web uygulaması Girdi Kontrol Girdi Kontrol Listele Urün Ismi Gir Veritabanı bağlantısı Veritabanı bağlantısı Ürün seç Ara Geridönen sonuçlar Geridönen sonuçlar Satın Al Girdi Kontrol Kredi Kartı Satın Alımın Verilerin Veritabanına Kredi Kartı Onaylama Adres Bilgileri Onaylanması Girilmesi ve onay Veritabanı bağlantısı Submit şlem Başarıyla Gerçekleştirildi 3/20/2007 Sabanci University 3
  • 4. Neden AJAX ihtiyacı Her işlem için ayrı bir sayfa görüntüleme Her işlemin sunucuya (submit) gönderilmesi şlem gerçekleştikten sonra yeni bir sayfaya yönlendirme Her yönlendirme sonucunda sayfaların yeniden yüklenmesi 3/20/2007 Sabanci University 4
  • 5. Neden AJAX ihtiyacı Urun Listesi Satın Alma Bileşeni Hatalar şlemler (DIV) Urun Listesi (DIV) Kredi Kart Girdi Kontrol Bileşeni Veritabanı işlemleri Kredikart Formu (DIV) Hataların bulunması Fatura Bilgileri Adres Formu (DIV) Bileşeni Arayüz HTML bunun için yetersiz kalır 3/20/2007 Sabanci University 5
  • 6. HTML Static içerik Kullanıcı etkileşimi yetersiz Yardımcı teknolojiler CSS Javascript Flash Appletler ..... 3/20/2007 Sabanci University 6
  • 7. Javascript Lightweight programlama dili Browser tarafından yorumlanır Kullanıcı etkileşimini arttırır Web sayfalarını hareketlendirir. Fakat gerçekleşen etkileşim sadece istemci hafızasında kalır (on the fly) 3/20/2007 Sabanci University 7
  • 8. AJAX AJAX (Asynchronous JavaScript and XML) Bir web uygulama geliştirme tekniğidir. Basit olarak; javascript kullanarak sunucuya bilgi göndermek ve gelen bilgiyi aynı sayfada göstermektir. Bu yüzden web sayfalarının masaüstü(desktop) uygulamalar gibi davranmasını sağlar. Web uygulamalarına getirdiği yeniliklerden dolayı Ajax uygulamaları “Web 2.0” uygulamaları olarakta adlandırılır 3/20/2007 Sabanci University 8
  • 9. Nasıl Çalışır ? HTTP HTML JavaScript AJAX CSS XML DOM 3/20/2007 Sabanci University 9
  • 10. Nasıl Çalışır ? <script type=“text/javascript”> Bilgi Listele Servlet XMLHttpRequest bilgileriAlServlet( req, res) { request bilgilerini al veritabanından bilgiyi çek bilgiyi clienta döndür function sonucIsle() { } …sunucudan gelen mesajı al …mesajın yazılacağı nesneyi al …mesajı yaz } function illeriGoster() { … yeni request nesnesi (url, parms) … callback fonksiyonu belirle (sonucIsle()) Uygulama … sunucuya gönder } Sunucusu Adana Adıyaman A Afyon ..... 3/20/2007 Sabanci University 10
  • 11. XmlHttpRequest 1999 yılında Internet Explorer 5 ile çıktı Web sunucudan gelen callback ler için geliştirilmiş bir ActiveX nesnesi Outlook Web Access (OWA) te kullanılmak için geliştirildi Firefox, Safari ve diğer browserlar tarafından desteklendi ActiveX yerine gerçek bir DOM nesnesi olarak geliştirildi W3C tarafından standart hale getiriliyor http://www.w3.org/TR/XMLHttpRequest/ Browserların %99 u tarafından desteklenmektedir AJAX teknolojisinin temelinde yatan nesnedir 3/20/2007 Sabanci University 11
  • 12. XmlHttpRequest XMLHttpRequest nesnesi Javascript ile oluşturulur XMLHttpRequest nesnesi oluşturmanın 3 yolu vardır Pek çok browser için (IE hariç); var request = new XMLHttpRequest(); Bazı IE versiyonları için (Kullandığı MSXML library ne göre değişir) var request = new ActiveXObject(quot;Microsoft.XMLHTTPquot;); Diğer IE versiyonları için var request = new ActiveXObject(quot;Msxml2.XMLHTTPquot;); Uygulamanın tüm browserlarda çalışması için en doğrusu hepsini yazmaktır 3/20/2007 Sabanci University 12
  • 13. XmlHttpRequest (kod örneği) function getXMLHttpRequest { var request = false; try { request = new XMLHttpRequest(); } catch(err1) { try { var request = new ActiveXObject(quot;Microsoft.XMLHTTPquot;); } catch(err2) { try { var request = new ActiveXObject(quot;Msxml2.XMLHTTPquot;); } catch(err3) { request = false; } } } return request; } 3/20/2007 Sabanci University 13
  • 14. XmlHttpRequest XMLHttpRequest nesnesi oluşturulduktan sonra, open metodu ile sunucu isteği hazırlanmalıdır. request.open(method, URL, asenkron) method 'GET' veya 'POST‘ olmalıdır URL bilgilerin nereye gönderileceği Eğer 'GET‘ kullanılırsa, data URL nin sonuna eklenir Eğer ‘POST‘ kullanılırsa, data bir sonraki aşamada eklenir asenkron true, yapılırsa browser sunucudan gelen bilgi için beklemez (genelde istenilende budur) request.open(method, URL) Şeklinde kullanılırsa default asenkron değeri true olur 3/20/2007 Sabanci University 14
  • 15. XmlHttpRequest XMLHttpRequest nesnesi oluşturulup hazırlandıktan sonra sunucuya send() methodu ile gönderilir request.send(null); Eğer method olarak ‘GET’ seçilmişse kullanılır request.send(bilgi ); Eğer method olarak ‘POST’ seçilmişse kullanılır Örnek: request.send('var1=' +value1+'&var2='+value2); 3/20/2007 Sabanci University 15
  • 16. Response Sunucudan dönen mesajı almak için öncelikle request nesnesinin onreadystatechange eventi gerçekleştiğinde hangi metodun çalışacağını belirtmeli ve metodu yazmalıyız request.onreadystatechange = herhangibirFonksiyon; function herhangibirFonksiyon() { if(request.readyState == 4){ var response = request.responseText; // gelen mesajın görüntülenmesi işlemi burada } } readyState in 4 olması demek gönderilen isteğe karşı bir cevap alınmış demektir 3/20/2007 Sabanci University 16
  • 17. Avantajları Zengin kullanıcı arayüzü Formlardaki bilgilerin tamamını her defasında sunucuya gönderilmesine gerek yoktur Bu yüzdende network trafiğini azaltır Sunucu tarafındaki teknolojiden bağımsızdır. (Sunucu tarafında, java,.NET, php, perl...vs teknolojilerden herhangibirisi kullanılabilir) Sayfanın tamamı yerine bir bölümünün yenilenmesini sağlar (asenkron çalışma) Sadece submit butonlarıyla sunucuya ulaşmak yerine daha fazla event kullanma imkanı sağlar 3/20/2007 Sabanci University 17
  • 18. Dezavantajları Back butonu işlevini kaybeder Her browser için ayrı kod yazmak gerekir Çalışılan domain dışındaki bir domaine ulaşılamaz Eğer javascript disable edilmişse çalışmaz Debug edilmesi çok zordur yi bir sunucu taraflı programlamanın yanısıra çok iyi bir javascript bilgiside gereklidir 3/20/2007 Sabanci University 18
  • 19. Örnek Ajax Uygulamaları t ocs ges D Sug le oog e ogl G Go line n oO Kik vim gle heets ı ak lamas o Go eads T ygu Spr U 3/20/2007 Sabanci University 19
  • 20. Örnek Ajax Uygulamaları Backbase http://www.backbase.com http://www.backbase.com/RUI/shop.html Real Time HTML Editor http://htmledit.squarefree.com/ Google Maps GTalk ..... 3/20/2007 Sabanci University 20
  • 21. DEMO 3/20/2007 Sabanci University 21