2017-03-11 2 views
0

私は(リフレッシュ)リロードしていたときに私は、すなわち、1つの問題に直面していますここでは、Webページへの通知をプッシュするためのcometdライブラリで働いていますブラウザページウィンドウを閉じる代わりにブラウザでページをリロードしているときにcometd serversession listenerを呼び出すことを避けるにはどうすればよいですか?

ServerSession.addListener(new ServerSession.RemoveListener() {.......} 

この方法は、回避する方法一部のブラウザでは、残念ながら呼びかけていますこのリスナーを呼び出すと、実際にこのリスナーはウィンドウが閉じられるか、リンク上でクリックイベントが発生するたびに呼び出す必要があります。これを達成するのを手伝ってください。

答えて

0

あなたはmozillaのfirefixでページをリロードし、私のためにMozillaとオペラbrowsers.Itフィットでページをリフレッシュしながら、window.unloadが呼び出すためのオペラブラウザはちょうど$.cometd.disconnect();をコメントし、window.onpagehideの代わりwindow.unloadを使用しながら、ServerSession.addListener(new ServerSession.RemoveListener() {.......}を呼び出さないようにしたい場合完璧です。ありがとう。

0

reload extensionは必要な処理を行います。

リロード拡張機能を使用すると、同じページをリフレッシュしたり、同じCometDアプリケーションの他のページに移動するリンクをクリックしても、クライアントがサーバと再ハンドシェイクすることがなくなり、元のセッションをリロードまたはリンクに保持できます。

+0

あなたの提案のおかげでありがとうと私は正確にどこのクライアントがセッションから削除されて知ってほしいと思います私はjqueryで正確な機能を知りたいと思いますページをリロードしているセッションは、Google Chromeこの再読み込みの問題は、FirefoxとOperaブラウザで発生しています。 –

+0

申し訳ありませんが分かりません。 'maxInterval'の後にタイムアウトすると、セッションはサーバによって削除されます。私の知る限り、この仕組みはすべてのブラウザで同じように動作します。 – sbordet

+0

ありがとう@sbordet私はあなたの参照で解決策を見つけました。ページをリフレッシュするのを避けるためにwindow.onpagehideを使用しました。リスナーの呼び出しを避けるために '$ .cometd.disconnect();'メソッドをコメントしました。 ServerSession.RemoveListener(){.......} 'mozillaやOperaブラウザでページをリロードしてくれてありがとう –

関連する問題