Ajax nedir?
Ajax nedir? sorusunu cevaplamadan önce, MVC dersleri serimize devam ederken, Ajax konusuna da değinmenin çok faydalı olacağını düşündük.
Ajax(Asynchronous JavaScript ve XML), web sayfalarında JavaScript ve XMLHttpRequest kullanımı ile ilgili uygulamalar yapmamızı sağlayan tekniğe verilen isimdir.
Ajax ile etkili web projeleri yapmak için gerekli her şey mevcuttur. Tüm web browserlarda çalışan bir framework’tür.
AJAX, bir dil ya da kütüphane değildir. Web’de, gerekli ihtiyaç ve isteklerimizi gerçekleştirmemizi sağlayan bir yöntemdir.
AJAX ile beraber işlem yapmaya yarayan istemci taraflı çatılardan birkaçı;
– JQuery,
– Backbone.js ve
– AngularJS’ dir.
AJAX ile işlem yapmaya yarayan sunucu taraflı teknolojilerden birkaçı;
– DWR (Direct Web Remoting) –> Doğrudan web uzaktan kumandası/erişimi.
– JSF (Java Server Faces) –> Java sunucu yüzü.
gibi sunucu taraflı teknoloji örnekleri vardır.
Neden Ajax?
Bu başlık için kısaca şöyle bir karşılaştırma yapmamız mümkün:
Klasik model
- Web tarayıcıdan sunucuya bir HTTP isteği gönderilir.
- Sunucu isteği kabul eder ve sonradan veriye erişir.
- Sunucu istenilen veriyi tarayıcıya gönderir.
- Web tarayıcısı veriyi alır ve veriyi göstermek için sayfayı yeniler.
Bu süreçte, kullanıcıların tüm işlemleri bitene kadar beklemekten başka çareleri yoktur. Sadece zaman alıcı olmasıyla birlikte, ayrıca sunucuya gereksiz bir yük yüklenmesine neden olur.
AJAX modeli
- Tarayıcı bir JavaScript çağrısı(call) yaratır, bu çağrı da daha sonra XMLHttpRequest’i aktifleştirir.
- Arka planda tarayıcı, sunucu için bir HTTP isteği oluşturur.
- Sunucu veriyi alır, erişir ve web tarayıcısına geri gönderir.
- Web tarayıcısı istenilen veriyi alır, veri ise sayfada direkt olarak gözükür. Sayfayı yenilemek gerekmez.
Bu şekilde, hem zamandan hem de yükten kurtulmuş oluruz. Ayrıca görsellik bozulmaz. Kullanıcıyı “Sayfa ne zaman tekrar yüklenecek. Offfffff!” gibi sıkıcı düşüncelerden kurtarmış oluruz.
Ajax nasıl çalışır?
AJAX’ın bir programlama dili olmadığını tekrar hatırlatalım. AJAX, bir takım web geliştirme tekniğidir. Ve istem genellikle aşağıdakileri içerir, göz atalım hemen:
- Ana dil için HTML/XHTML ve sunum için CSS.
- Dinamik görüntü verisi ve etkileşimi için Document Object Model – Doküman Nesne Modeli(DOM).
- Veri değişimi için XML ve etkileşimi için ise XSLT. Birçok geliştirici JSON(JS ‘nin temel frameworklerindendir.) kullanmaya başladı. Çünkü JavaScript’e en yakın ve en fazla kullanılan frameworküdür.
- Eş zamanlı olmayan iletişim için XMLHttpRequest nesnesi.
- Bütün bu teknolojileri bir araya getirmek için JavaScript.
Ajax nedir sorusunu daha net cevaplamak ve ajax’ın nasıl çalıştığını daha iyi anlamak için küçük bir örnek verecek olursak eğer;
Bir form oluşturuyorsunuz(yazıyorsunuz). Bu form için il, ilçe, adres gibi bir üst katmanına göre şekillenen veri kullanmanız gerekiyorsa. Yani daha açık olmak gerekirse, ili seçmeden ilçe seçememe ya da ile göre ilçelerin listelenmesi durumu düşünülebilir.
Ajax nasıl çalışır konusunun daha iyi anlaşılması için farklı bir örnek; yine form üzerinden olacak : Üniversiteye göre fakülte ve bölüm seçimi olabilir. Ya da ile göre hastane, hastaneye göre poliklinik , polikliniğe göre hekim seçimi de örnek olarak verilebilir. Hepsinde, alt seçimler bir üstteki seçime göre dinamik olarak (sayfa yenilenmeden) değişecektir.
Örnekler günlük hayatta gördüğümüz gibi karşımıza çokça çıkmakta.
Ajax’ın avantajları nelerdir?
Öncelikle bir web geliştiricisi için konuşacak olursak, HTML, JavaScript, DOM, CSS bilginiz zaten var anlamına gelmektedir. Hiç yoktan bu konuları hakkında ufak da olsa bilgi sahibisinizdir.
AJAX tekniği, saydığımız bu konuları ve örnekleri kapsadığından baştan bir dil öğrenme durumunda değilsiniz. Sadece tekniği öğrenmeniz ve fikir sahibi olmanız dahi yeterli.
Çalıştığınız web sayfasının yalnız belirli kısmına yüklenmesi gerektiğinden, AJAX web sayfanıza (projenize) hız katacaktır. Hatta misafirleriniz, bir masaüstü uygulaması kullanıyormuş gibi hissedebilir. Bu nedenle AJAX web uygulamaları, masaüstü uygulamaları gibi derlenmiş uygulamalara da yatkındır.
Bant genişliği, bir saniyede aktarılan bit sayısıdır.
Bir web sitesi varsa ve bunun için web hosting veren bir şirketten hizmet alıyorsanız, bant genişliği site sahibi için önemlidir. Kullanıcı, sayfayı her yenilediğinde bant genişliği azalır. Eğer bu azalma en aza indirilirse aynı ücret karşılığında çok daha uzun bir süre bant genişliği kullanımda olur. Bu konuda AJAX siz avantaj sağlar. Artık sayfa gereksiz bölgeleri her işlemde yeniden yüklenmeyecek ve bant genişliğinden büyük miktarda kar sağlamış olacaktır.
Ajax’ın dezavantajları nelerdir?
Tabi ki gelişmekte olan her yazılımda hatalar, buglar vardır. Ajax’ da da bazı hataları ve dezavantajları vardır. Bu dezavantajların avantaja dönüştüğü zamanlar da vardır.
Örneğin, herkesin dilinde olan ileri geri buton özelliği;
Sayfalar dinamik oluşturulduğundan geri gidildiğinde sayfa yapısına göre bozulmalar meydana gelebilmektedir. Çünkü tarayıcılar, dinamik sayfaları hafızada tutmaz. Bu sorunu çözmek için bazı çalışmalar yapılabilir. Ek kodlar, ileri geri butonlarının pasifleştirilmesi gibi. Ama bu her zaman olduğu gibi bizim için de ek zaman, emek, çalışma ve ek bant genişliği (kapasite- Bandwidth) istemektedir.
Ya da arama motoru indexlenememesini ele alacak olursak;
Ajax içerisinde yüklenen datalar sayfanın kaynak kodlarında görüntülenemez. Arama motorları da bunu görmediğinden indexleme yapamaz.
Ziyaretçi sayısının önemli olduğu sayfalar için bu aşırı önem taşıyan bir dezavantajdır.
Ayrıca, kişisel bilgilerin olduğu sayfaların arama motorlarında görünmesini istemeyiz. Ya da resmi kurumlar için özel yapılan sitelerde içerik gizli olmalıdır. Böyle bir durumda ajax dezavantajdan avantaja dönüştürülebilir.
Ajax’in JS(javascript)’den dolayı meydana gelen sorunlarını ele alacak olursak eğer;
Örneğin, JS kullanmak bilgisayarı bir miktar yavaşlatır. Çünkü JS kullanıcı bilgisayarında yorumlanır. Buda bilgisayarda yavaşlamaya neden olur.
Eski sürüm tarayıcılarda meydana gelen ActiveX problemi;
Ajax’ kullandığı ActiveX nesnesidir. Bazı tarayıcılar ActiveX’i engellediği için Ajax çalışmayabiliyor. Bunun içinde çözümler vardır. (Tarayıcımızı güncellemek 😊 ).
Görüldüğü gibi ajax ile ilgili birçok avantaj ve dezavantaj bulunmakta. Bir çok insan ajax’ı kullanırken bazıları da eski kaldığını düşünmekte. Fakat koşula bağlı doldurulacak alanlarda ajax çok kolaylık sağlar. 😊
“Ajax nedir? Ajan Nasıl Çalışır” adlı yazımızı burada bitiriyoruz.
Umarım sizler için de ajax nedir yazım faydalı olmuştur.