1

3 つのタブで実行される (WebRTC) Web アプリケーションがあります。

  • タブ 1 はデータベースをリセットします (既存のデータを削除し、初期データ セットを再作成します)
  • タブ 2 はクライアント #1 として機能し、サーバーに非同期要求を送信します
  • タブ 3 はクライアント #2 として機能し、サーバーに非同期リクエストを送信します

私が気付いたのは、タブ 1 をリロードすると、他のタブの 1 つまたは両方が閉じてしまうことです (Chrome のタブのリストから削除されたように)。IRC で Chrome 開発者に尋ねたところ、Chrome は「Aw snap!」と出力すると主張しています。タブがクラッシュした場合に備えて、タブのリストから削除しません。自分のコードがページを閉じていないことは確かです。

何が/誰がタブを閉じているかを知るにはどうすればよいですか?

4

2 に答える 2

0

私は遅れを感じます。

そのため、この問題を何日も調査したところ、ネットワーク エラーが発生した場合にコードが関数を呼び出していて、この関数が を呼び出していることがわかりclose()ました。クラスのclose()メソッドに解決するwindow.close()代わりに、代わりに解決しました。次に何が起こったと思いますか?:) タブが閉じました。

この問題を特に困難にしたのは、Chrome 固有の 2 つのバグでした。

要するに:window.close()動作すべきではないときに動作し、失敗すると静かに動作します。

とにかく、私はこの問題は解決したと考えています。これが、他の人が将来同じ過ちを犯さないようにするのに役立つことを願っています.

于 2013-01-17T22:24:25.697 に答える
0

Javascript や Chrome についてはよくわかりませんが、最近ソケット プログラミングを行っていて、サーバーがダウンした場合、サーバーが接続を切断したことに気付いてそれを処理しない限り、クライアントは通常クラッシュします (try/catch ステートメント)。 . 私のアドバイスは、クライアントがサーバーのドロップアウトを処理できることを確認することです.

于 2013-01-15T23:05:13.737 に答える