2012-04-20 9 views
5

Web uygulamam iPad'ler Galaxy sekmeleri vb. Gibi birden fazla el aygıtında çalışır. Sunucudan uygulama isteği görüntüler ve İstemcilerde işlenir.Javascript'te Ağ Kaybı Nasıl Algılanır?

Şimdi problem bazen bu durumun üstesinden gelmek için istediğiniz ağ bağlantısı

... ikon cihazlarda gösterilen no-görüntü html o zaman daha görüntülerin oluşturulması sırasında kaybolur, olmuyo incelikle, ağ kaybı sırasında, bunu yakalamak ve .. hiçbir ağ bağlantısı falan ...

Ben kullanıcıya navigator.onLine olay çalıştı kullanıcıya bir uyarı göstermek istiyoruz ama tüm sette çalışmıyor desteklediğim tarayıcı, mozilla vb. 5-6 sürümü.

Ve ayrıca benim uygulama sadece wifi yerel ağ üzerinde çalışacak ... Bu internete bağlı olabilir veya olmayabilir ... Bu navigator.onLine da bu uygunluk içinde çalışır ..?

bana bunu yapmak için başka iyi bir yol verin ...

+0

Kodlayıcı olarak tüm deneyimim boyunca, çevrimiçi olup olmadığınızı, hangi platformdan ya da programlama dilinden bağımsız olarak, çevrimiçi olup olmadığınızı belirlemenin hiçbir zaman mümkün olamayacağı sonucuna vardım. – ControlAltDel

cevap

2

Sunucunuza biraz XHR istek yapmak ve iade durumu kontrol edebilir. Bu, 0 ise the connection is missing anlamına gelir. Ben xhr nesne için IE-uyumluluk bölümünü atlandı ama eklemek kolay olurdu:

function isOnline (callback) { 
    var xhr = new XMLHttpRequest() 
    xhr.onreadystatechange = function () { 
     // Make sure the request is finished 
     if (xhr.readyState === 4) { 
      // There is the magic 
      if (xhr.status === 0) { 
       callback(false) 
      } 
      else { 
       callback(true) 
      } 
     } 
    } 
    xhr.open('/some/url') 
    xhr.send() 
} 

// Usage example: 
isOnline(function (status) { 
    if (status) { 
     // You're online 
    } 
    else { 
     // You're not online 
    } 
}) 

PS:

Yani, böyle bir şey size küçük bir yardımcı program işlevi verebilir. Bu fikri elde etmek için daha fazla.

2

Örneğin, resim yüklenmez ise

<img src="..." onerror="noConnection()"> 

Yani noConnection yöntemi çağrılır kullanabilirsiniz. Burada

diğer bilgiler: jQuery/JavaScript to replace broken images

+0

Dokümantasyona bir link ekleyebilir misiniz? – Tadeck

+0

, dokümanlara bir bağlantı ekledi. –

+1

Tamam, belki W3Schools'dan daha güvenilir bir şey? W3Schools'un tamamen güvenilir olmayan bir bilgi kaynağı olması harika olurdu. Buraya bakın: http://w3fools.com/ – Tadeck