AJAX (İngilizce: Asynchronous JavaScript and XML, Türkçe: Eş zamansız JavaScript ve XML), İnternet sayfalarında JavaScript ve XMLhttpRequest kullanımı ile etkileşimli uygulamalar yaratan tekniğin adıdır.
Nasıl okunması gerektiği konusunda bir genel uzlaşma olmamakla birlikte çoğunlukla yazıldığı gibi Ajaks olarak okunurken, kimileri tarafından aynı yazımla futbol takımı örnek gösterilerek Ayaks olarak okunmaktadır. İngilizce’de ey-ceks olarak okunur.
En yaygın kullanım alanı, sayfayı yeniden yüklemeye gerek kalmaksızın, sayfada görünür değişiklikler yapmaktır. XMLHttpRequest kullanılarak birden fazla bağımsız işlem yapılabilir. Bazı bilişim uzmanları, AJAX’ın HTML ve XML’den sonra en yenilikçi İnternet yazılımı olduğunu ve Web 2.0.’ı sonlandırıp, 3. evrenin kapısını açtığını öne sürmüşlerdir.
Asynchronous JavaScript and XML sözcüklerinin kısaltması olan Ajax, etkileşimli (interaktif) web uygulamaları yaratmak için kullanılan bir web programlama tekniğidir. Temel amacı arka planda sunucuyla ufak miktarda veri değişimi sayesinde sayfayı daha hızlı güncelleyebilen web sayfaları yapmak, dolayısıyla kullanıcıyı istediği her anda bütün web sayfasını güncellemek derdinden kurtarmaktır. Bu da web sayfasının etkileşimini, hızını ve kullanılabilirliğini artırmak demektir.
Ajax tekniği aşağıdaki teknolojileri kullanır:
Bilgiyi biçimlendirmek ve görüntüsünü değiştirmek için XHTML (ya da HTML) ve CSS.
Görüntülenecek bilgiyi dinamik olarak göstermek ve onunla etkileşimli çalışmak için özellikle JavaScript ve JScript gibi ECMAScript olan kullanıcı tarafındaki bir scripting dili yardımıyla erişilebilen DOM.
Web sunucusu ile bilgi değiş tokuşunda kullanılan XMLHttpRequest objesi. Bazı Ajax frameworklerde ve bazı durumlarda web sunucusuyla bilgi alışverişi için XMLHttpRequest yerine IFrame de kullanılır; diğer uygulamalarda ise dinamik olarak eklenen JavaScript TAG’leri de kullanılabilir.
Kullanıcıyla sunucu arasındaki bilgi alışverişlerinde genelde XML formatı kullanılır. Önceden hazırlanmış HTML, düz metin, JSON ve hatta EBML dahi olmak üzere herhangi bir format da kullanılabilir. Bu tip dosyalar sunucu tarafında herhangi bir script (PHP, ASP vs.) ile bile üretilmiş olabilir.
DHTML, LAMP ve SPA vb.lerinin aksine Ajax kendi başına bir teknoloji değildir ancak terim birçok teknolojinin bir bütün olarak kullanıldığını ifade eder.
Hazırdaki bir web sayfasına, tamamen yeniden yüklemeden asenkron (eş zamanlı olmayan) içerik ilave etme teknikleri 1996’da Internet Explorer’la birlikte gelen iframe ve 1997’de Netscape (Mozilla’nın ilk dönemlerinde geliştirilmesi durdurulmuştur.) ile gün yüzüne çıkan layer öğesi kadar eskidir. Her iki öğe de herhangi bir harici url’yi alarak esas sayfayı değiştirebilen src özniteliğine sahipti. Sonraları, tarayıcı tarafında çalışan bu teknolojiler DHTML adı altında anılmaya başlanmıştır. Macromedia firmasının Flash uygulaması da 4. sürümünden itibaren XML ve CSV formatındaki dosyaları sayfa yenilemeye gerek kalmaksızın uzak sunucudan yükleme özelliğini bulunduruyordu.
AVANTAJLARI VE DEZAVANTAJLARI
Bant genişliğini ayarlamak; HTML’yi ağ tarayıcısı (browser) programında oluştururken, JavaScript işlemlerini ve işlenecek verileri kullanırken, sunucudan gelen sayfa bilgisi gerektiğinden daha az yer tuttuğundan dolayı AJAX web sayfalarının görece olarak daha hızlı yüklendiği gözlenebilir. İçeriğin “isteğe bağlı olarak yüklenmesine” ek olarak, bazı web uygulamaları ilk önce Olay Yöneticilerini (event handler), ardından ilgili fonksiyonları indirir. Bu teknik, karmaşık mekanizması ve fonksiyonu olan web uygulamalarının gereksinim duyduğu yüksek miktarda bant genişliği tüketimini önemli ölçüde hafifletir.
Erişilebilirlik
Web uygulamalarında Ajax teknolojilerini kullanmak, Bilgisayar Erişilebilirliği konusunda araçlar geliştiren tasarımcılar için birçok sorunu beraberinde getirmektedir. Buna ek olarak Section 508 gibi Amerikan Uyum Standartlarına sıkı bir şekilde uyulması gerektiği ABD devlet destekli birçok geliştirme projeleri bulunmaktadır. Bu standartlara uyulmaması, bazı durumlarda bilgisayar uyumluluğuyla ilgili birçok iş anlaşmalarının iptaline ve hukuki problemlerin doğmasına neden olmaktadır.
Bu yüzden Ajax’la yapılmış çözümlerin büyük bir kısmı grafik tabanlı tarayıcılara hitap ettiğinden dolayı, geliştiriciler başka platform ve tarayıcı kullanıcılarının da gereksinimlerini karşılamak zorundadır.
Web tasarımcıları, web tarayıcısının bütün sayfayı renderlemesine gerek kalmaksızın veri işlemeye olanak tanındığı durumlarda bazen web sayfasının sadece belli kısımları için Ajax’ı kullanabilirler. Ajax kullanamayanlar ise bütün bir sayfayı yenilemeye ve yüklemeye devam edebilmeli; geliştiriciler ise Ajax’ı destekleyen tarayıcılarla daha teknik olanaklar sunsa da bütün erişilebilirlik konuları dahil olmak üzere Ajax içermeyen ortamlardaki kullanıcıların yeteneklerini kısıtlamamalıdırlar.
Ajax Nerede Kullanılır
Ajax hemen hemen web’de birçok şey için kullanılır. Bunun en önemli örneği Google Maps dir. Kullanıcı sayfadaki haritaya tıklayıp resmi çektiği an, bütün sayfa yeniden yüklenmeden bilgi anında gösterilir. Bütün bunlar Ajax’ın senkron özelliği tarafından yapılmaktadır. Ajax aynı zamanda Gmail’de de kullanılmaktadır. Bilginin yüklenmesi için sayfanın tamamının yeniden yüklenmesi gerekmemektedir. Yeni posta geldiğinde, hemen otomatik olarak gelen kutusuna eklenir. Bu kullanıcının yenileme düğmesine sürekli olarak tıklaması ihtiyacını önler. Google Translate’de de Ajax kullanmaktadır. Kullanıcılar bir yazıyı bir dilden başka bir dile tercüme etmek için yazmaya başladığı zaman, Ajax hemen diğer dildeki anlamı aynı sayfada gösterir.