1. ホーム
  2. ジャバスクリプト

[解決済み】インターネット接続がオフラインになったことを検出しますか?

2022-03-28 11:12:19

質問

JavaScriptでインターネット接続がオフラインであることを検出する方法は?

どのように解決するのですか?

を行うことで、接続が切れたと判断することができます。 XHRリクエストの失敗 .

標準的な方法としては リクエストの再試行 を数回実行します。 もし通らなかったら ユーザーに警告する で接続を確認し 優雅に失敗する .

補足 アプリケーション全体をオフラインの状態にすることは、状態を処理する上で多くのエラーを起こしやすい作業につながるかもしれません。 そのため、最善の方法は、ただ優雅に失敗し、データを保存し、ユーザーに警告することかもしれません。

補足 googleのような信頼できるサイトで接続性を確認することもできますが、Googleは利用できても自分のアプリケーションは利用できない可能性があり、接続の問題を自分で処理しなければならないため、自分でリクエストしようとするだけでは全く意味がないかもしれません。 googleにpingを送信してみることは、インターネット接続自体がダウンしていることを確認する良い方法でしょうから、その情報が役に立つのであれば、手間をかける価値はあるのかもしれませんね。

補足説明 : Pingを送信する は、あらゆる種類の双方向のajaxリクエストを行うのと同じ方法で実現できますが、この場合、googleにpingを送信することは、いくつかの課題を提起することになります。 まず、Ajax通信でよくあるクロスドメイン問題が発生します。 ひとつの方法として、サーバーサイドのプロキシを設定することで、実際に ping Google(または任意のサイト)にPingを打ち、その結果をアプリに返します。これは キャッチ-22 インターネット接続に問題がある場合は、サーバーにアクセスできませんし、接続に問題があるのが自ドメインだけであれば、その違いを見分けることができないからです。例えば、google.comを指すiframeをページに埋め込んで、iframeの成否をポーリングする(内容を調べるなど)、といったクロスドメイン的な手法も考えられます。 画像を埋め込んでも何もわからないかもしれません。何が起こっているのかについて良い結論を出すためには、通信メカニズムからの有用な応答が必要だからです。 このように、インターネット接続の状態を総合的に判断することは、かえって面倒なことかもしれません。 このようなオプションは、特定のアプリのために重み付けをする必要があります。