Eşzamansız anlamına gelen AJAX JavaScript ve XML, web sayfalarının eşzamansız olarak güncellenmesine izin veren bir tekniktir, yani sayfadaki küçük bir veri değiştiğinde tarayıcının tüm sayfayı yeniden yüklemesi gerekmez. AJAX yalnızca güncellenen bilgileri sunucuya / sunucudan iletir.
Standart web uygulamaları, web ziyaretçileri ve sunucu arasındaki etkileşimleri senkronize olarak işler. Bu, bir şeyin birbiri ardına gerçekleştiği anlamına gelir; sunucu çoklu görev yapmaz. Bir düğmeyi tıklatırsanız, mesaj sunucuya gönderilir ve yanıt döndürülür. Yanıt alınana ve sayfa güncellenene kadar başka sayfa öğeleriyle etkileşime giremezsiniz.
Açıkçası, bu tür bir gecikme bir web ziyaretçisinin deneyimini olumsuz etkileyebilir - dolayısıyla AJAX.
AJAX nedir?
AJAX bir programlama dili değildir, ancak bir web sunucusuyla iletişim kuran bir istemci tarafı komut dosyası (yani kullanıcının tarayıcısında çalışan bir komut dosyası) içeren bir tekniktir. Ayrıca, adı biraz yanıltıcıdır: AJAX uygulaması veri göndermek için XML kullanabilirken, yalnızca düz metin veya JSON metni de kullanabilir. Ancak genellikle, sunucudan veri istemek için tarayıcınızda bir XMLHttpRequest nesnesi ve verileri görüntülemek için JavaScript kullanır.
AJAX: Senkron veya Asenkron
AJAX sunucuya hem eşzamanlı hem de eşzamansız olarak erişebilir:
- Eş zamanlıiçinde komut dosyası durur ve devam etmeden önce sunucunun bir yanıt göndermesini bekler.
- uyumsuz, komut dosyasının sayfanın işlenmesine devam etmesine izin verir ve geldiğinde ve geldiğinde yanıtı işler.
İsteğiniz işleniyor eşzamanlı sayfanın yeniden yüklenmesine benzer, ancak sayfanın tamamı yerine yalnızca istenen bilgiler indirilir. Bu nedenle, AJAX'ı eşzamanlı olarak kullanmak hiç kullanmamaktan daha hızlıdır - ancak yine de ziyaretçinizin sayfa ile daha fazla etkileşime geçmeden önce indirme işleminin gerçekleşmesini beklemesini gerektirir. İnsanlar bazen bir sayfanın yüklenmesini beklemeleri gerektiğini bilirler, ancak çoğu kişi siteye girdikten sonra önemli gecikmeler yapmaya devam etmez.
İsteğiniz işleniyor uyumsuz ziyaretçiniz web sayfasıyla etkileşime devam edebileceğinden sunucudan alım yapılırken gecikmeyi önler; istenen bilgiler arka planda işlenir ve yanıt, sayfayı geldiği zamanki gibi günceller. Ayrıca, bir yanıt geciktirilse bile (örneğin, çok büyük veri durumunda) site ziyaretçileri, sayfanın başka bir yerinde meşgul oldukları için bunu fark edemeyebilir.
Bu nedenle, AJAX'ı kullanmanın tercih edilen yolu, mümkün olduğunda asenkron çağrıları kullanmaktır. Bu, AJAX'ta varsayılan ayardır.
Neden Senkronize AJAX Kullanılmalı?
Eşzamansız çağrılar bu kadar gelişmiş bir kullanıcı deneyimi sağlıyorsa, AJAX neden eşzamanlı çağrı yapmanın bir yolunu sunar?
Zaman uyumsuz çağrılar çoğu zaman en iyi seçim olsa da, nadiren de olsa ziyaretçinizin belirli bir sunucu tarafı işlemine kadar web sayfasıyla etkileşime devam etmesine izin vermek için anlamlı olun tamamlamalar.
Bu vakaların çoğunda, AJAX'ı hiç kullanmamak daha iyi olabilir ve bunun yerine tüm sayfayı yeniden yükleyebilir. AJAX'ta eşzamanlı seçenek, eşzamansız bir çağrıyı kullanamayacağınız ancak tüm sayfayı yeniden yüklemek gereksiz olan az sayıda durum için vardır. Örneğin, siparişin önemli olduğu bazı işlem işlemlerini gerçekleştirmeniz gerekebilir. Kullanıcı bir şeyi tıkladıktan sonra bir web sayfasının bir onay sayfası döndürmesi gerektiğini düşünün. Bu görev, isteklerin senkronize edilmesini gerektirir.