それは多くの質問です。正確に何を達成しようとしているのかに直接関連する、より簡単に答えられる部分に分割することを検討することをお勧めします。それまでの間、私はあなたの質問のそれぞれに短い答えを提供しようとします:
私の最初の懸念は、オフライン アプリケーション API の現時点での信頼性です。
かなり信頼性が高く、ほとんどの主要な Web ブラウザー (IE を除く) の多くのバージョンで実装されています。
最初にアプリケーションをダウンロードしたのと同じ URL にアクセスして (オフラインで) Web アプリケーションにアクセスしましたか?
はい。オフライン アプリがキャッシュされると、アプリケーションはそのキャッシュから提供されます。NETWORK
マニフェスト自体が変更されたかどうかを確認する場合を除いて、マニフェストのまたはFALLBACK
セクションから URL を明示的にリクエストするか、マニフェストでまったくカバーされていない場合を除き、ネットワーク リクエストは行われません。
このオフライン アプリケーションは、ローカル サーバーと通信できる必要があります。理想的には、Web サーバーをホストする必要はありませんが、ソケット接続はもっともらしいです。
Web ソケットには、引き続き Web サーバーが必要です。Web ソケットの最初のハンドシェイクは HTTP 経由です。 Web ソケットは、TCP/IP のソケットと同じではありません。
ブラウザがオフラインのとき、Websocket は現在どの程度うまく機能しますか?
ブラウザをオフライン モードに設定すると、ネットワーク リクエストがまったく行われなくなります。ブラウザがオフラインに設定されていることは、「オフライン API」のオフラインと同じではないことに注意してください。オフライン API は主に、アプリケーションをホストしているサーバーに到達できるかどうかに関係しており、ブラウザーが現在ネットワークに接続されているかどうかや、そのネットワークがインターネットに接続されているかどうかには関係ありません。サーバーがダウンした場合、アプリは、ユーザーのコンピューターのネットワーク ケーブルが抜かれたかのように「オフライン」になります。このブログ投稿、特にコメントを読んでください。オフライン ステータスを検出するための私の通常のアプローチは、FALLBACK
オンラインのときに一方を取得し、オフラインのときにもう一方を取得するようなセクション - AJAX でそのファイルを要求し、何が得られるかを確認します。
アクティブなインターネット接続がなくても、完全にネットワーク化されたインタラクティブなブラウザー アプリケーションを実行することは可能ですか?
はい、しかし、それはあなたが考えていることを意味するとは思いません。異なるマシン上の異なるブラウザーで実行されているアプリの個別のインスタンスは、Web サーバーを経由しないと相互に通信できません。ただし、Web サーバーが「インターネット上」にある必要はありません。ローカル ネットワーク上にあれば問題ありません。