AJAX_islem_belirteci

AJAX İşlem Belirteci


Pek çok sitede görmüşsünüzdür, bir butona veya linke tıkladığınızda işlemin yapıldığını belirten bir hareketli grafik gösterilir. Bunun anlamı talep ettiğiniz işlemin yapılıyor olduğu ve biraz beklemeniz gerektiğidir. Özellikle yüklü veri talebinde ve düşük band genişliklerinde bu tip gecikmeler olabilir.



Kullanıcı arka planda yapılan işlemlerden ve gecikmelerden çok fazla haberdar olamaz. İşlemin arka planda yapıldığı sırada bir gecikme olduğundan habersiz olan kullanıcı başka bir link veya butona basarak esas işleme son verebilir.
Ve tabii ki bu durum kullanıcılarımızı kızdırabilir.
Bu yüzden işlemin yapıldığını belirten bir belirteç koymak ziyaretçilerimizin bilgilendirilmesi ve arkada çalışan işlemin kesilmemesi açısından çok faydalıdır.
Bu yazımda size böyle bir belirtecin sayfanıza nasıl ekleneceğini anlatacağım. Tabii ki bu belirteç AJAX özellikli olacak.
Öncelikle yapmamız gereken, VS 2005 veya VWD Express 2005 editörümüzden bir AJAX projesi açmak.
Daha sonra sayfamıza, sürükle-bırakla bir label ve buton elemanı ekleyelim.
Aşağıdaki kodları yazalım :


Buradaki System.Threading.Thread.Sleep(5000) ifadesi sayfa yüklemesini bir miktar (yaklaşık 5-6 sn) geciktirir. Bu satırı uygulamamızı test etmek amacıyla koyuyorum.
Gerçek hayatta bu gecikme bir veritabanı sorgulaması veya bir servis bağlantısı gibi şeyler olabilir.
Sayfamızı çalıştırdığımızda ve butona tıkladığımızda, butona basıldığı süreyle sayfanın geri gelme süresi arasında 5-6 saniyelik bir gecikme olduğunu sayfadaki saatten gözlemleyebiliriz:



Bu esnada kullanıcı böyle bir gecikmenin olabileceğinin doğal olarak farkında değildir. Ve sanki sistem çalışmıyormuş gibi gelebilir. İşte bunu önlemek amacıyla buraya bir işlem belirteci koymakta fayda var. Kullanacağımız belirteç, hareketli resimleri barındıran AJAX altyapısını kullanan ve AJAX eklentileriyle gelen belirteçtir.


Bunun için toolbox tan
UpdateProgress i alıp sayfaya eklemek ve animated gif resmimizin yol tanımını yapmak yeterlidir.






Bildirimlerimizde ProgressTemplate Tagları arasında belirteç resmimizin yol tanımının yapıldığını ve ayrıca metinsel bir uyarı da eklendiğini görüyoruz.
Label ve buton elemanlarımızın UpdatePanel bildirimleri içinde olduğuna dikkatinizi çekerim.
Sayfamızı şimdi çalıştıracak olursak:



Belirteç sayesinde ziyaretçi arka planda bir işlem yapıldığını anlar ve biraz bekler. Böylece başka linklere tıklayarak işlemin yarıda kesilmesi engellenmiş olur.