AJAX - Tarayıcı Desteği

Programlama Dilleri bölümünde yer alan bu konu hortLak tarafından paylaşıldı.

  1. hortLak

    hortLak c ε ή κ

    AJAX - Tarayıcı Desteği
    AJAX 'ın temeli XMLHttpRequest nesnesidir.

    Farklı tarayıcılar XMLHttpRequest nesnesini yaratmak için farklı işlevler kullanırlar.

    Internet Explorer bir ActiveXObject kullanırken, diğer tarayıcılar XMLHttpRequest adı verilen Javascript nesnesini kullanırlar.

    Bu projeyi oluşturmak ve farklı tarayıcılarla başa çıkmak için bir "try - catch" ifadesi kullanacağız.

    Önceden oluşturduğumuz "testAjax.htm" dosyamızı XMLHttpRequest nesnesini oluşturan Javascript kodumuzla güncelleyelim.:

    HTML:
    <html> 
    <body> 
    <script type="text/javascript">function ajaxFunction() 
      {  var xmlHttp; 
      try 
        {    // Firefox, Opera 8.0+, Safari    xmlHttp=new XMLHttpRequest();    } 
      catch (e) 
        {    // Internet Explorer    try 
          {      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      } 
        catch (e) 
          {      try 
            {        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        } 
          catch (e) 
            {        alert("Your browser does not support AJAX!");        return false;        }      }    }  }</script> 
    <form name="myForm"> 
    Name: <input type="text" name="username" /> 
    Time: <input type="text" name="time" /> 
    </form> 
    </body> 
    </html>

    Kod açıklaması: Önce, XMLHttpRequest nesnesini tutan xmlHttp değişkenimizi oluşturalım.

    Sonra nesneyi XMLHttp=new XMLHttpRequest() ifadesiyle oluşturmayı deneyelim. Bu ifade Firefox, Opera, ve Safari tarayıcıları için geçerlidir. Eğer bu ifade başarısız olursa xmlHttp=new ActiveXObject("Msxml2.XMLHTTP") ifadesini dene. Bu ifade Internet Explorer 6.0+ tarayıcıları için geçerlidir. Bu ifade de çalışmazsa xmlHttp=new ActiveXObject("Microsoft.XMLHTTP") ifadesini deneriz. Bu ifade ise Internet Explorer 5.5+ tarayıcıları için uygundur.

    Bu üç yöntemin hiçbiri işe yaramazsa kullanıcı çok eski bir tarayıcı kullanıyor demektir. Bu durumda kullanıcı, tarayıcısının AJAX 'ı desteklemediğine dair bir uyarı iletisi alacaktır.

    Not: Yukarıdaki tarayıcıya özel kod uzun ve yeterince karmaşıktır. Ama bu kodu bir XMLHttpRequest nesnesi yaratmanız gerektiği her zaman kullanabilirsiniz. Yani bu kodu kopyala-yapıştır yaparak gerektiğinde kullanabilirsiniz. Yukarıdaki kod bütün meşhur tarayıcılarla uyumludur: Internet Explorer, Opera, Firefox ve Safari.

    Sonraki konu XMLHttpRequest nesnesinin sunucuyla iletişime geçmek için nasıl kullanıldığını göstermektedir.