- Katılım
- 17 Ocak 2024
- Mesajlar
- 121.044
- Çözümler
- 15
- Tepkime puanı
- 1
- Puan
- 38
- Web sitesi
- forumsitesi.com.tr
AJAX (Asynchronous JavaScript and XML), web sayfalarının sunucuyla arka planda veri alışverişi yaparak sayfanın yeniden yüklenmesine gerek kalmadan dinamik olarak güncellenmesini sağlayan bir tekniktir. AJAX, kullanıcı deneyimini iyileştirmek ve web uygulamalarını daha hızlı hale getirmek için kullanılır.
javascript
Fetch API ile daha modern bir yaklaşım:
javascript
Kodu kopyala
AJAX'in Temel Özellikleri
- Asenkron İletişim:
- Kullanıcı, web sayfasında işlemler yaparken diğer bileşenler etkilenmeden sunucuyla veri alışverişi yapılabilir.
- Dinamik İçerik Güncelleme:
- Tüm sayfa yeniden yüklenmeden yalnızca gerekli bölümler güncellenir.
- Birden Fazla Teknolojiyi Kullanır:
- HTML ve CSS: Kullanıcı arayüzünü oluşturur.
- JavaScript: Etkileşimli ve dinamik işlemleri sağlar.
- XML veya JSON: Veri alışverişi formatı olarak kullanılır.
- XHR (XMLHttpRequest) veya Fetch API: Sunucuyla iletişim kurar.
AJAX Nasıl Çalışır?
AJAX işlemi genellikle şu adımları takip eder:- Kullanıcı Etkileşimi:
- Bir kullanıcı, web sayfasında bir işlem yapar (örneğin, bir butona tıklar).
- İstek Gönderimi:
- JavaScript, bir XMLHttpRequest (XHR) veya Fetch API kullanarak sunucuya bir istek gönderir.
- Sunucunun Yanıt Vermesi:
- Sunucu, isteği işler ve sonuçları genellikle JSON veya XML formatında geri döner.
- Yanıtın İşlenmesi:
- JavaScript, sunucudan alınan yanıtı işler ve sayfanın yalnızca ilgili bölümlerini günceller.
- Sayfa Yenilenmeden Güncelleme:
- Kullanıcı, içeriğin dinamik olarak değiştiğini görür.
AJAX Kullanım Alanları
- Dinamik Web Sayfaları:
- İçeriğin anlık olarak güncellendiği interaktif web sitelerinde kullanılır.
- Form İşlemleri:
- Form gönderildiğinde sayfanın yenilenmesi gerekmeden veri sunucuya gönderilir.
- Otomatik Tamamlama:
- Google aramalarında olduğu gibi, yazı yazıldıkça önerilerin anlık olarak gösterilmesini sağlar.
- Veri Tabloları ve Grafikler:
- Veriler, sunucudan dinamik olarak alınıp tablolar veya grafikler güncellenebilir.
- Canlı Bildirimler:
- Mesajlaşma uygulamaları, sosyal medya bildirimleri gibi durumlarda kullanılır.
AJAX'in Avantajları
- Hız ve Performans:
- Sadece gerekli veri alınıp işlendiği için ağ trafiği azalır ve işlemler daha hızlı olur.
- Kullanıcı Deneyimi:
- Sayfa yeniden yüklenmeden değişiklikler yapılabilir, bu da daha akıcı bir deneyim sağlar.
- Sunucu Yükünü Azaltır:
- Tüm sayfayı göndermek yerine yalnızca gerekli veriler gönderilir.
- Platformdan Bağımsızdır:
- Tüm modern web tarayıcılarında desteklenir.
AJAX'in Dezavantajları
- Tarayıcı Uyumluluğu:
- Eski tarayıcılarda sınırlamalar olabilir. (Modern tarayıcılarda bu sorun büyük ölçüde çözülmüştür.)
- SEO Problemleri:
- Dinamik içerikler arama motorları tarafından doğru şekilde indekslenmeyebilir.
- JavaScript Bağımlılığı:
- Kullanıcının tarayıcısında JavaScript devre dışıysa AJAX işlemleri çalışmaz.
- Güvenlik Riskleri:
- Veri alışverişi sırasında güvenlik açıkları oluşabilir. Bu nedenle veriler güvenli bir şekilde işlenmelidir.
AJAX ile Örnek Kod
Basit bir AJAX isteği:javascript
Kod:
<span>// Bir XMLHttpRequest oluştur</span><br><span>var</span> xhr = <span>new</span> <span>XMLHttpRequest</span>();<br><br><span>// İstek türü ve URL'yi belirt</span><br>xhr.<span>open</span>(<span>"GET"</span>, <span>"https://api.example.com/data"</span>, <span>true</span>);<br><br><span>// İstek tamamlandığında çağrılacak bir fonksiyon tanımla</span><br>xhr.<span>onload</span> = <span>function</span>(<span></span>) {<br> <span>if</span> (xhr.<span>status</span> === <span>200</span>) {<br> <span>// Sunucudan gelen yanıtı işleme</span><br> <span>console</span>.<span>log</span>(<span>"Sunucudan Gelen Veri:"</span>, xhr.<span>responseText</span>);<br> }<br>};<br><br><span>// İstek gönder</span><br>xhr.<span>send</span>();<br>
javascript
Kodu kopyala
Kod:
<span>fetch</span>(<span>"https://api.example.com/data"</span>)<br> .<span>then</span>(<span><span>response</span> =></span> response.<span>json</span>())<br> .<span>then</span>(<span><span>data</span> =></span> {<br> <span>console</span>.<span>log</span>(<span>"Sunucudan Gelen Veri:"</span>, data);<br> })<br> .<span>catch</span>(<span><span>error</span> =></span> {<br> <span>console</span>.<span>error</span>(<span>"Bir hata oluştu:"</span>, error);<br> });<br>