2012-12-30 8 views
5

Eventuali duplicati:
JavaScript: How to detect that the Internet connection is offline?Voglio aggiungere una funzionalità di facebook di mostrare un messaggio quando il mio utente perde la connessione internet

in Facebook, quando si perde la connessione Internet, è vedere un messaggio "Nessuna connessione Internet. Riprovare?" e sei cambiato da online a offline. Lo voglio nel mio sito web. Come lo posso fare?

+2

Invia un ping al server. Se non ci sono risposte, sono offline e li avvisano utilizzando Javascript. –

+2

Come di HTML5, è possibile usare [ 'window.navigator.onLine'] (https://developer.mozilla.org/en-US/docs/DOM/window.navigator.onLine), anche se non pienamente compatibile – jeremy

risposta

4

Questo dovrebbe funzionare, ma probabilmente gestire in modo diverso. Invia semplicemente una query a una pagina sul tuo server ogni 15 secondi. Se la query non riesce, probabilmente è offline (o tu o il server).

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'); ?> 

vorrei collegare personalmente una funzione non riescono a mie altre query Ajax o polling. Se quelli falliti, vorrei innescare il messaggio non in linea e cessare ulteriori polling o query fino a quando la pagina è stata ricaricata o dopo un certo intervallo di tempo. Non ha senso solo il polling del server per il gusto di farlo.

+0

Grazie. che dire cambiare utente da online a offline nel mio database MySql. È possibile. Come fa Facebook? – user1763032

3

Eseguire una richiesta ajax periodico al server. Se la richiesta non riesce, il motore ajax chiamerebbe un callback "fail".

Ma nella vita reale, si sarebbe probabilmente allegare un "fail" javascript callback per tutte le richieste a lato server, e sarebbe il fuoco su una richiesta non riuscita.

Problemi correlati