jQuery’nin AJAX fonksiyonları, JavaScript kodunuzda sunucuyla asenkron olarak iletişim kurmanıza olanak tanır. jQuery 1.5 sürümünden itibaren AJAX işlemleri için Promises yapısını desteklemeye başladı. Promises, asenkron işlemleri daha okunabilir ve yönetilebilir hale getirir.
Temel Kullanım
jQuery’nin $.ajax()
fonksiyonu, bir Promise
nesnesi döner. Bu, AJAX isteğinizin tamamlanması (başarı veya hata) durumunda belirli bir kodu çalıştırmanızı sağlar.
Örnek Kullanım
Aşağıda bir AJAX isteği örneği ve Promises kullanımı gösterilmektedir:
$.ajax({ url: 'https://jsonplaceholder.typicode.com/posts', // İstek yapılacak URL method: 'GET', // HTTP metodu dataType: 'json' // Dönen veri türü }) .done(function(data) { // Başarıyla tamamlandığında çalışacak kod console.log('Başarı:', data); }) .fail(function(jqXHR, textStatus, errorThrown) { // Hata ile sonuçlandığında çalışacak kod console.error('Hata:', textStatus, errorThrown); }) .always(function() { // İstek tamamlandığında (başarı veya hata) her zaman çalışacak kod console.log('İstek tamamlandı'); });
.done()
, .fail()
, ve .always()
.done()
: İstek başarıyla tamamlandığında çağrılır. Dönen veriler parametre olarak geçilir..fail()
: İstek hata ile sonuçlandığında çağrılır. Hata detayları parametre olarak geçilir..always()
: İstek tamamlandığında (başarı veya hata durumunda) her zaman çağrılır.
Daha Kompleks Bir Örnek
Birden fazla AJAX isteği yaparak ve bunların tamamlanmasını bekleyerek işlem yapmak isteyebilirsiniz. Bunu yapmak için $.when
ve $.Deferred
kullanabilirsiniz:
var request1 = $.ajax({ url: 'https://jsonplaceholder.typicode.com/posts/1', method: 'GET', dataType: 'json' }); var request2 = $.ajax({ url: 'https://jsonplaceholder.typicode.com/posts/2', method: 'GET', dataType: 'json' }); $.when(request1, request2).done(function(response1, response2) { // Her iki istek de başarıyla tamamlandığında çalışacak kod console.log('İstek 1 yanıtı:', response1[0]); console.log('İstek 2 yanıtı:', response2[0]); }).fail(function() { // İsteklerden biri veya her ikisi hata ile sonuçlandığında çalışacak kod console.error('Bir istek başarısız oldu.'); });
Bu örnekte, $.when
iki AJAX isteğinin de tamamlanmasını bekler ve her ikisi de başarıyla tamamlandığında done
fonksiyonu çalışır. Eğer herhangi biri hata ile sonuçlanırsa fail
fonksiyonu çalışır.
Sonuç
jQuery AJAX Promises kullanımı, asenkron işlemleri daha yönetilebilir ve okunabilir hale getirir. .done()
, .fail()
, ve .always()
fonksiyonları ile isteklerinizi yönetebilir ve çeşitli durumlar için uygun kodları yazabilirsiniz. Bu sayede, özellikle karmaşık asenkron işlemleri daha kolay ve düzenli bir şekilde yönetebilirsiniz.