5

私は IE9 で SignalR を使用していますが、残念ながら、永遠のフレーム接続を使用するように低下​​する必要があります。

私は、IE の開発者ツールを使ってこれを調べることに時間を費やしました。動的に挿入された IFrame にコールバックが読み込まれていることがわかり、SignalR プラグインで受信関数が呼び出されます。ただし、これらの約 20/30 の後、応答が停止します。サーバーからクライアント スクリプトを呼び出すことができなくなります。

IFrame の読み込みが最終的にタイムアウトになったと推測していますが、これに対して発生するイベントがないように見えるため、強制的に再接続することはできません。

IE で堅牢な SignalR 接続を機能させることができた人はいますか?

ありがとう :)

4

4 に答える 4

9

Web サイトの Javascript が機能しなくなるという問題がありました。具体的には、Ajax 呼び出しが機能しないことを指摘しました。いくつかの調査の結果、SignalR がクラッシュの原因であることがわかり、Forever Frames に関するこの記事を見つけました。クライアントの JavaScript で次のコードを使用して、SignalR で Forever Frames のサポートを削除しようとしました。

$.connection.hub.start({ transport: ['webSockets', 'serverSentEvents', 'longPolling'] });

したがって、「webSockets」、「serverSentEvents」、「longPolling」のみがサポートされます。

于 2013-06-04T09:20:20.010 に答える
2

このGithub の問題によると、これは jQuery 1.10.1 で修正されました。

この問題は 1.9.x で導入され、1.10.1 で修正されました。

JQuery 1.8.1 で実行しても動作するようです。

解決策: jQuery を更新する

于 2013-07-09T07:14:25.687 に答える
1

これが起こっているのを見たときはいつでも、実際には不正なゾンビ IE9 プロセスがバックグラウンドで実行されていました。それらに関連付けられたウィンドウさえありませんでした。それで、私はそれらのゾンビを殺しに行って、IE の新しいインスタンスを再起動し、問題を引き起こす異常が再び発生するまで、長い間問題を抱えていませんでした。

ばかげているように聞こえるかもしれませんが、私は David Fowler に問題の症状と、iFrame が次の iFrame セッションを開始することをトランスポートに知らせるために魔法のようにイベントの発生を停止する理由がまったくわからないことを説明するのに長い時間を費やしました。SignalR メッセージ自体は常に論理メッセージ ストリームを適切に終了させ、onreadystatechange イベントは単純に発生を停止します。

于 2012-09-04T21:14:18.727 に答える
0

これをドキュメント準備完了イベントに入れると、iframe の問題はすべて解決されます。

$.connection.hub.start({ transport: ['webSockets', 'serverSentEvents', 'longPolling'] });
于 2014-06-30T13:08:18.950 に答える