2012-06-04 2 views
1

서버에서 이벤트를 가져와 웹 페이지를 업데이트해야하는 프로그램을 개발해야합니다.브라우저 탭간에 데이터를 공유하는 방법은 무엇입니까?

채팅을 위해 열리는 여러 브라우저 탭이 있으며 각 채팅 페이지에는 서버에서 이벤트를 가져 오는 고유 한 스레드가 있지만 한 번 채팅 중 하나의 스레드는 다른 채팅 페이지에서 추출한 이벤트의 빈 스택을 얻는 것보다 이벤트를 가져옵니다. .

여기 내 관심사는 페이지를 새로 고치지 않고 여러 채팅 페이지와 이벤트를 공유하는 것입니다.

+1

이 시나리오를 더 잘 지원하기 위해 "메시지 가져 오기"디자인을 변경할 수 있습니다 (여러 개의 * 브라우저가 열려있는 경우에는 어떻게됩니까?) –

답변

3

당신이 postMessage을 사용하면 메시지를 가져 오는 탭에 도메인의 다른 모든 페이지를 공유 할 수있는 것처럼 들릴 수 있습니다. 당신이 그런위한 강력한 시작점이다 내가보기 엔 APE 추천 순수 자바 스크립트로 작성된 실시간 채팅 애플리케이션을 개발하려면

window.addEventListener("message", receiveMessage, false); 

function receiveMessage(event) { 
    // reject foreign messages! 
    if (event.origin !== "http://www.mydomain.com") return; 

    var message = JSON.parse(event.data).chatmsg; 

    // this other page now has the message 
} 
0

:

postMessage(JSON.stringify({chatmsg: someVarFromServer}), "http://www.mydomain.com"); 

다른 채팅 페이지 message 이벤트를 수신 되세요 목표. Ajax 요청 주기적으로

  • 사용과 같은 이벤트를 받기위한 타사 응용 프로그램을 전송하여 이벤트에 대한

    • 확인 : 당신이 프레임 워크를 사용하지 않으려면
      여기이 크로스 브라우저 솔루션입니다 Flash의 XML 소켓
  • 관련 문제