11. ve son dersimizle JavaScript serimizi harika bir şekilde tamamlıyoruz. Bu derste, modern web geliştirmenin en güçlü yanlarından biri olan, web sayfalarını yenilemeden arka planda veri alışverişi yapmamızı sağlayan Asenkron Programlama ve Fetch API konularını işliyoruz.
JavaScript Dersleri #11: Asenkron JavaScript ve Fetch API
JavaScript normal şartlarda senkron çalışan bir dildir; yani kodlar yukarıdan aşağıya doğru sırayla yürütülür ve bir satırdaki işlem bitmeden alt satıra geçilmez. Ancak, uzak bir sunucudan veri çekmek gibi uzun süren işlemler senkron olsaydı, veri gelene kadar tüm sayfa donardı.
Bu tıkanmayı önlemek için asenkron (aynı anda arka planda çalışan) yapıları kullanırız.
1. Asenkron Mantığı: Veri Beklerken Sayfayı Dondurmamak
Asenkron işlemlerde, uzun sürecek olan işlem arka plana devredilir. JavaScript o işlemin bitmesini beklemeden alt satırlardaki kodları çalıştırmaya devam eder. Arka plandaki işlem tamamlandığında ise sonuç ekrana yansıtılır.
2. Fetch API ile Dış Dünyadan Veri Çekme
Modern JavaScript'te bir API'den (veri sağlayan uzak sunucu) veri almak veya sunucuya veri göndermek için fetch() metodunu kullanırız. fetch(), bize asenkron bir söz, yani bir Promise döner.
// Örnek bir API adresinden sahte kullanıcı verisi çekelim
fetch("https://jsonplaceholder.typicode.com/users/1")
.then(cevap => cevap.json()) // Gelen veriyi okunabilir JSON formatına çeviriyoruz
.then(kullanici => {
console.log(`Gelen Kullanıcı Adı: ${kullanici.name}`);
})
.catch(hata => {
// Eğer internet kesilirse veya API çalışmazsa burası tetiklenir
console.error("Veri çekilirken bir hata oluştu:", hata);
});
3. Daha Temiz Bir Yazım: Async / Await
.then() zincirleri kod büyüdükçe karmaşık bir hal alabilir. ES8 ile gelen async ve await anahtar kelimeleri, asenkron kodları tıpkı senkron kod yazıyormuş gibi düz ve son derece okunabilir yazmamızı sağlar.
Bir fonksiyonun içinde
awaitkullanabilmek için, o fonksiyonun başınaasynckelimesi eklenmelidir.await, arkasından gelen asenkron işlem (veri çekme gibi) tamamlanana kadar kodun o satırda geçici olarak duraklamasını sağlar.
// Fonksiyonu asenkron olarak tanımlıyoruzasync function kullaniciGetir() {try {// Veri gelene kadar bekle ve 'cevap' değişkenine atalet cevap = await fetch("https://jsonplaceholder.typicode.com/users/1");// JSON dönüşümü bitene kadar beklelet kullanici = await cevap.json();console.log(`Async/Await ile Gelen: ${kullanici.name}`);} catch (hata) {// Hata yakalama mekanizmasıconsole.error("Hata yakalandı:", hata);}}// Fonksiyonu çağırıyoruzkullaniciGetir();
Blogger İçin Neden Önemli?
Bu asenkron yapıları kullanarak Blogger sitenizde sayfa yenilenmeden çalışan "Dinamik Arama Kutuları", "Hava Durumu Widget'ları" veya "Dış Kaynaklı Popüler Yayınlar" gibi gelişmiş özellikleri kolaylıkla kodlayabilirsiniz.
Tebrikler! 11 derslik temel ve orta düzey JavaScript Ders Serisini tamamen bitirdiniz.
Hiç yorum yok:
Yorum Gönder