2012-12-30 15 views
5

可能性の重複を失ったときにメッセージを表示するFacebookの機能を追加したい:あなたは、Facebookので
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'); ?> 

私は個人的に私の他のAjaxまたはポーリングクエリに失敗する機能を添付します。これらが失敗した場合は、オフラインメッセージをトリガーし、ページがリロードされるまで、または一定の時間間隔が経過するまで、さらにポーリングまたはクエリを停止します。サーバーをポーリングするだけで、それを実行するための意味はありません。

+0

ありがとうございます。私のMySqlデータベースで、オンラインからオフラインにユーザーを変更するのはどうでしょうか?出来ますか。 Facebookはどうしていますか? – user1763032

3

サーバーに定期的なAjaxリクエストを実行します。要求が失敗すると、ajaxエンジンは "失敗"コールバックを呼び出します。

しかし実際には、サーバ側のすべてのリクエストに「失敗」のJavaScriptコールバックを添付して、リクエストが失敗したときに起動してしまうでしょう。

関連する問題