IE8'de Offline ve Online Çalışma Modları

0 dakikada yazıldı

8860 defa okundu

Düzenle

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