Ö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...