2012-12-30 2 views
5

가능한 중복 잃을 때 메시지를 표시하는 페이스 북의 기능을 추가 할 : 페이스 북에서
JavaScript: How to detect that the Internet connection is offline?는 내 사용자가 인터넷 연결을

을, 당신은 인터넷 연결을 잃어 버릴 때 "인터넷에 연결되어 있지 않습니다. 다시 시도하십시오."라는 메시지가 표시됩니다. 온라인에서 오프라인으로 변경됩니다. 내 웹 사이트에 그걸 원해. 어떻게해야합니까?

+2

서버에 ping을 보냅니다. 응답이 없으면 오프라인 상태가되어 Javascript를 사용하여 경고합니다. –

+2

HTML5부터는 완전히 호환되지는 않지만 ['window.navigator.onLine'] (https://developer.mozilla.org/en-US/docs/DOM/window.navigator.onLine)을 사용할 수 있습니다. – jeremy

답변

4

이 방법이 효과적 일 수 있지만 다르게 처리 할 수 ​​있습니다. 단지 15 초마다 서버의 페이지에 쿼리를 보냅니다. 쿼리가 실패하면 아마 오프라인 일 것입니다 (귀하 또는 서버).

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

나는 개인적으로 내 다른 아약스 또는 폴링 쿼리에 실패 기능을 첨부 할 것입니다. 실패한 경우 오프라인 메시지를 트리거하고 페이지가 다시로드되거나 특정 시간 간격 후에 추가 폴링 또는 쿼리를 중단합니다. 서버를 폴링하는 것만으로도 아무런 의미가 없습니다.

+0

감사합니다. MySql 데이터베이스에서 온라인에서 오프라인으로 사용자를 변경하는 것은 어떨까요? 가능한가? 페이스 북은 어떻게합니까? – user1763032

3

서버에주기적인 Ajax 요청을 실행하십시오. 요청이 실패하면 ajax 엔진은 "실패"콜백을 호출합니다.

실생활에서는 서버 측에 대한 모든 요청에 ​​"실패"자바 스크립트 콜백을 첨부하고 요청이 실패하면 실행됩니다.

관련 문제