1

Javaサーブレット3.0を使用して、長いプーリングを使用してアプリケーションを実装していますAsyncContext

ご存知のように、サーバーをリッスンし、プッシュ通知を受信するオープン接続が常に存在する必要があります。問題はありませんが、次の問題が発生します。

ブラウザのどこでもキーを押すESCと(何も選択されていない場合、またはテキストフィールド/テキストエリアにフォーカスしている場合)、開いたままにしておく必要のあるリクエストがブラウザによって閉じられます。

期待される動作ですか?この動作を停止するクロスブラウザの方法はありますか?

Firebugを使用してChromeとMozillaでこれをテストしました

keyupイベントを添付して新しいリクエストを実行できることは知っていbodyますが、これは、多数のevent.stopPropagation()を使用する大きなJSドキュメントでエラーが発生しやすくなる可能性があります。

LE:Firebugログ:

ここに画像の説明を入力してください

4

1 に答える 1

0

この問題に関して Mozilla には未解決のバグがあり、2010 年に最初に報告されました。

https://bugzilla.mozilla.org/show_bug.cgi?id=614304

「ESC を押すと、Firefox で開いている XMLHttpRequests が中止されます。これは、他のブラウザーでは発生しません (WebKit を除き、ページの読み込みが完了する前に XHR が開始された場合のみ)。」

回避策として、すべての ESC プレスをキャプチャできることをお勧めします。jQuery を使用すると、次のことができます。

$(document).keyup(function(e) {
  if (e.keyCode == 27) { return false };
});
于 2012-11-20T15:49:39.493 に答える