Özellikle RIA uygulamalarındaki en büyük sorunlardan biri anlık
internet bağlantısı kesintilerinde sayfanın bir daha geri ulaşılamayacak
şekilde ekrandan kaybolması
veya farklı hataların ortaya çıkarak geri dönüşü imkansız hale
getirmesidir. Bu hoş olmayan durumu artık Internet Explorer 8.0 ile
beraber çözebiliyoruz. IE 8.0 içerisinde
navigtor.offline nesnesi ile istemci tarafında internet
bağlantısının o an için olup olmadığı kontrol edebildiğimiz gibi
internet bağlantısı ile ilgili değişiklikleri algılayacak event-handler
tanımlamaları da yapabiliyoruz. Bu kolaylıklar ile artık AJAX
veya Silverlight uygulamalarının istemci tarafındaki kesintileri
algılayarak uygun bir şekilde kullanıcıyı
uyarmaları mümkün. Hatta belki de internet bağlantısının koptuğunu
algılayan
uygulama veriyi DOMStorage'a saklayıp bir sonraki çalıştığında sunucuya
gönderebilir. Minik bir örnek ile bu işlemleri nasıl yapabileceğimize
göz atalım.
[HTML]
<body
ononline="VarMi();"
onoffline="VarMi();">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div id="icerik">
</div>
<input onclick="VarMi();" id="Button1" type="button" value="button" />
</form>
</body>
Yukarıdaki HTML kodu içerisinde özellikle koyu yazılı noktalara dikkat etmemiz gerekiyor. Birazdan yazacağımız
VarMi adındaki JavaScript fonksiyonumuz istemcide
internet bağlantısı olup olmadığını kontrol edecek. Fakat hangi
durumlarda bu kontrolü yapacağız? İlk olarak söz konusu fonksiyonumuzu
sayfamızda bir düğmeye bağladık. Böylece istediğimiz zaman tıklayarak
internet bağlantısı olup olmadığını öğrenebiliriz. Diğer yandan
istemcide internet bağlantısı koptuğunda veya internet bağlantısı
geldiğinde de
VarMi fonksiyonumuzun çalışarak gerekli değişiklikleri yapmasını istiyoruz. O nedenle body’nin
ononline ve onoffline özelliklerine de söz konusu fonksiyonumuzun adını yazıyoruz. Böylece
online durumunda yani internet bağlantısı geldiğinde veya
onoffline durumunda yani internet bağlantısı kesildiğinde de anında
VarMi fonksiyonumuz çalıştırılacak. Gelelim şimdi de VarMi fonksiyonumuzu yazmaya.
[JScript]
function VarMi() {
if (window.navigator.onLine) {
$get("icerik").innerHTML = "İnternet Var";
}
else {
$get("icerik").innerHTML = "İnternet YOK";
};
}
Aslında kod çok basit. navigator.onLine metodu bize geriye bir
Boolean değeri döndürüyor. Eğer tarayıcıda o an internet
bağlantısı varsa sayfadaki bir DIV içerisine uygun uyarı mesajını yazıyoruz.
Aynı şekilde eğer bağlantı yoksa bu sefer de farklı bir uyarı mesajı yazıyoruz.
Siz örneklerinizde bu durumlara göre farklı işlemler yapabilirsiniz. Böylece
hazırladığınız web sitesi yeri geldiğinde belki bazı işlemleri bir süreliğine
sunucudan bağımsız olarak da yapabilir ve nasıl çalışacağına internet
bağlantısının durumuna bakarak kendisi karar verebilirim.
Hepinize kolay gelsin...
Daron Yöndem