2017-03-11 15 views
0

는 내가 브라우저 페이지창을 닫지 않고 브라우저에서 페이지를 다시로드하는 동안 cometd 서버 세션 수신기를 호출하지 않으려면 어떻게해야합니까?

ServerSession.addListener(new ServerSession.RemoveListener() {.......} 
이 방법은 어떻게 방지 할 수있는 몇 가지 브라우저에서 불행히도 호출

를 다시로드 (새로 고침)입니다 때마다 나는, 즉 하나의 문제에 직면하고 여기에 웹 페이지에 알림을 밀어위한 cometd 라이브러리를하고 있어요 이 리스너를 호출하면 실제로이 리스너는 윈도우가 닫히거나 링크에서 클릭 이벤트가 발생할 때마다 호출해야합니다. 따라서이 작업을 수행하는 데 도움을주십시오. 감사합니다.

답변

0

당신은 모질라 firefix에서 페이지를 다시로드 나를 위해 모질라와 오페라 browsers.It 맞는에서 페이지를 새로 고침 동안 window.unload 전화 때문에 오페라 브라우저 그냥 $.cometd.disconnect();을 언급하고 window.onpagehide 대신 window.unload를 사용하면서 ServerSession.addListener(new ServerSession.RemoveListener() {.......}를 호출하지 않도록하려면 완벽하게. 고마워.

0

reload extension은 필요한 작업을 수행합니다.

reload 확장을 사용하면 동일한 페이지를 새로 고치거나 동일한 CometD 응용 프로그램의 다른 페이지로 이동하는 링크를 클릭하면 클라이언트가 서버와 다시 핸드 셰이크하지 않으므로 원본 세션을 다시로드 또는 링크에서 유지할 수 있습니다.

+0

귀하의 제안 sbordet 고마워 한 번 더 정확히 어디 클라이언트가 세션에서 제거 되 고 싶습니다 jquery에서 정확한 기능을 알고 싶습니다 및 페이지를 다시로드하는 동안 세션은 구글 크롬 하지만이 재로드 문제는 파이어 폭스와 오페라 브라우저에서 나타납니다. –

+0

죄송합니다. 이해가 안됩니다. 세션은'maxInterval' 후에 타임 아웃 될 때 서버에 의해 제거됩니다. 내가 아는 한이 메커니즘은 모든 브라우저에서 동일한 방식으로 작동합니다. – sbordet

+0

Thanks @sbordet 내가 페이지를 새로 고치는 문제를 피하기 위해 window.onpagehide를 사용했으며, 리스너 'ServerSession.addListener (new) 호출을 피하기 위해'$ .cometd.disconnect();'메소드를 주석 처리했다. ServerSession.RemoveListener() {.......}'mozilla 및 Opera 브라우저에서 페이지를 다시로드하는 동안 대단히 감사합니다. –