1

ブラウザがインターネットに接続されているかどうかにかかわらず、Web アプリが動作している間に理解する必要があります。これは、クラウド データまたはローカルストア データを使用する必要があることを意味します。

navigator.onLine を使用すると、クロムのみが真実を教えてくれます。Firefox または Safari は、Wi-Fi に接続しているかどうかのみを確認します。

特定の Web サイトに ping を送信し、毎回小さなファイルをダウンロードしようとする関数を作成しますが、モバイルで Web アプリを使用する場合、これは良い解決策ではありません。

誰かが私に別のアイデアを教えてもらえますか?

4

1 に答える 1

2

それはあなたが「インターネットに接続されている」とはどういう意味かによります。ブラウザからサーバーリソースへのパスには、失敗する可能性のある非常に多くのポイントがあります。それはあなたのローカル接続ですか?デフォルトゲートウェイに問題がありますか?より広いネットワークでのルーティングの問題?アクセスしようとしているサーバーアプリケーションに問題がありますか?

必要なリソースが利用可能であることを絶対に確認する唯一の方法は、旅のどこにも問題がなく、必要なリソースを取得しようとすることです。ただし、実際に問題があると判断する前にタイムアウトを待つ必要がある場合は、これを確認するのにかなり時間がかかる可能性があります。

ブラウザアプリケーションをオフラインで実行するための別のアプローチを検討しましたか。これにより、常にデータをローカルストアに保持し、定期的にサーバーに非同期で同期します。サーバーへの同期が成功したかどうかについてユーザーにフィードバックを提供することもできますが、データは常にローカルに保存されます。

これを支援する1つのライブラリ、つまり新しいMicrosoftシングルページアプリケーションフレームワークを知っています。確かに、Microsoft以外の同等のものもあるはずです。

編集: これは、これをどのように行うかについて、非常に興味深い基礎的なアプローチのように見えます。

自分で何かを書きたい場合は、このアプローチについてSOに関する質問があります。オフラインHTML5データベース同期に関する質問。

于 2012-05-13T15:10:41.467 に答える