2012-12-30 26 views
5

Olası Çoğalt kaybettiğinde bir mesaj görüntüleme facebook işlevsellik eklemek istiyorum: facebook yılında
JavaScript: How to detect that the Internet connection is offline?benim kullanıcı Internet bağlantısı

, internet bağlantısı da koptuğunda, sen bir mesaj gör "İnternet bağlantısı yok. Tekrar dene?" ve çevrimdışından çevrimdışına değiştiniz. Bunu web sitemde istiyorum. Bunu nasıl yapabilirim?

+2

Sunucuya bir ping gönderin. Yanıt yoksa, çevrimdışıdır ve Javascript kullanarak uyarırlar. –

+2

HTML5'ten itibaren, tam uyumlu olmasa da, ['window.navigator.onLine'] (https://developer.mozilla.org/en-US/docs/DOM/window.navigator.onLine) 'ı kullanabilirsiniz, – jeremy

cevap

4

Bu işe yaramalı, ancak muhtemelen farklı şekilde ele alacağım. Sadece sunucunuzdaki bir sayfaya her 15 saniyede bir sorgu gönderir. Sorgu başarısız olursa, muhtemelen çevrimdışı (siz veya sunucu).

function checkOnline(){ 
    $.ajax({ 
     url: "test.php", 
    }).done(function(html) { 
     if(html=='ok') 
      setTimeout('checkOnline()',15000); 
     else 
      alert('Error'); 
    }).fail(function(){ 
     alert('Offline'); 
    }); 
} 

test.php

<?php exit('ok'); ?> 

Ben şahsen benim diğer Ajax veya yoklama sorguları için başarısız fonksiyonu eklemek olacaktır. Bunlar başarısız olursa Çevrimdışı iletiyi tetikler ve sayfa yeniden yüklenene kadar veya belirli bir zaman aralığından sonra sorgulamayı veya sorguları durdururdum. Sadece sunucuyu kontrol etmek için bir anlam yok.

+0

Teşekkürler. MySql veritabanımda çevrimiçi olarak çevrimdışı kullanıcı değiştirmeye ne dersiniz. Mümkün mü. Facebook bunu nasıl yapıyor? – user1763032

3

Sunucunuza bir periyodik ajax isteği çalıştırın. İstek başarısız olursa, ajax motoru bir "başarısız" geri çağrısı çağırır.

Ancak, gerçek hayatta, sunucu tarafındaki tüm isteklere "başarısız" bir javascript geri bildirimi eklersiniz ve başarısız bir istek üzerine tetiklenir.

İlgili konular