4

接続をチェックするhtmlファイルにこのコードがありますが、ここでの問題は、接続が失われたことを示すアラートメッセージボックスをスローするのに約10秒かかることです。待たずに接続が失われたことをユーザーに通知するもっと速い方法があるかどうか知りたいです。厳密にJSに感謝します...

JSコード:

<script language="JavaScript">
function SubmitButton()
{
    if(navigator.onLine)
    {
            document.getElementById('SubmitBtn').style.visibility='visible';
    }
    else
    {
        document.getElementById('SubmitBtn').style.visibility='hidden';
    }
}
function Online() 
{ 
    var status=false;
    status= navigator.onLine;
    if(status!= true)
    {
        alert('Network connectivity is lost, please try again later');
    }
}
</script>

ここでhtmlファイルでそれを呼び出します:

<INPUT name="ccMCA1input" type="checkbox" onclick="ccMCA1.ccEvaluate(),Online()" value=False>
4

3 に答える 3

7

(ny)サーバーから定期的に1x1 gif画像をリクエストし、キャッシュを回避するためにキャッシュバスター方式を使用するようにしてください。onloadイベントとonerrorイベントを使用できます。

var isOnline = (function isOnline(){
  // Create a closure to enclose some repeating data
  var state = false;
  var src = 'gif_url?t=' + Date.now();
  var function onLoad = function(){state = true;}
  var function onError = function(){state = false;}

  // Inside the closure, we create our monitor
  var timer = setInterval(function(){
    var img = new Image();
    img.onload = onLoad;
    img.onerror = onError;
    img.src = src;
  }, 10000);

  // Return a function that when called, returns the state in the closure
  return function(){return state;};
}());

//Use as
var amIOnline = isOnline();
于 2012-05-03T07:34:34.640 に答える
4

navigator.onLineチェックできる唯一の組み込みプロパティです(信頼性はありません)。
信頼できるサーバーへのXHRリクエストを作成し、応答が受信されているかどうかを確認できます。

于 2012-05-03T07:22:50.813 に答える
1

次のURLを確認することを検討してください。

  1. オンライン接続監視
  2. navigator.onLineテスト
  3. オン/オフラインイベントキャプチャ
于 2012-05-03T07:38:25.353 に答える