目次

JavaScript/ネットワーク状態を取得する

ダミー画像を使っての検知

Tips ネットワーク編 サーバー接続をチェックする 1 [Javascript] All About

画像のonLoadやonErrorに仕込めばお手軽でいいかも。

コールバックでキック

実装してないけど多分

こんなんでいいような気がするわ

これならネットワークが繋がっている場合は正常系が即実行される。

サンプルコード

で動作確認

元のHTML

<html>
    <head>
        <title>hoge</title>
    </head>
    <body>
        <div onclick="hogehoge();">click</div>
        <script src="a.js"></script>
    </body>
</html>

元のHTMLから呼び出されるお膳立て用スクリプト

a.js
var timer;
function hogehoge(){
    timer = setTimeout(piyopiyo, 5000);
    var scriptB = document.createElement("script");
    scriptB.src = "b.js?" + Math.random();
    var head = document.getElementsByTagName("head")[0];
    head.appendChild(scriptB);
}
function piyopiyo(){
    alert("disconnect");
}
function fugafuga(){
    clearTimeout(timer);
    alert("connect");
}

疎通確認用に使うコールバックが記述されているスクリプト

b.js
fugafuga();

window.navigator.onLineを使う

window.navigator.onLineというプロパティからネットワーク状態を取得できるらしい。 つながっていたらtrue、切れていたらfalse・・・らしい

ということだがこれはかなり怪しいというか意味が無い。 まず挙動が実装系やそのバージョンによってバラバラ。PCのブラウザは常にtrueを示したり、Androidだとバージョンによって状態が違ったりと。

そもそもネットワークってのは単に繋がっているだけじゃ意味が無い、欲しいデータがあるサーバに繋がりを確認できないと意味が無い。

Android端末をWiMAX端末に無線LAN接続している場合はどうだろう?WiMAXの電波が切れていてもAndroid端末はWiMAXとはネットワークが繋がっているのだからAndroidから見ればネットワークは繋がっている。しかしWiMAXが切れているのだからやっぱり目的は達成できない。

これ意味あんのか?

バージョンと製造年月日

2012-04-05

タグ