2013-06-10 3 views
3

자바 서블릿에서 매 5 초마다 수신되는 데이터의 상수 스트림이있는 웹 애플리케이션을 개발 중입니다. 다른 애플리케이션에서 작성한 파일에서 읽습니다.). 이 데이터를 HTML 페이지로 밀어 넣고 d3 라이브러리에서 그래프로 그릴 수 있도록 자바 스크립트로 읽어 들이고 싶습니다.서블릿에서 라이브 데이터 보내기

현재 서블릿의 'doGet'함수를 5 초마다 호출하는 javascript 함수를 사용하고 있습니다. 오버 헤드가 많이 발생하거나 더 효율적으로 수행 할 수 있다고 걱정됩니다. "response.setIntHeader ("Refresh ", 5);"를 실행할 수도 있습니다. 서블릿에서.

다른 더 좋은 방법이 있습니까?

미리 도움을 청하십시오! 당신이 통지에 지연 몇 초에 대처 할 수있는 경우

+0

체크 cometd 프로젝트 : http://cometd.org/ – fmodos

+0

감사합니다, 나는 또한 관심을 가질만한 다른 사람을 위해, 웹 소켓을 발견했다. 그것은 모든 서버에서 작동하지는 않지만. –

+0

다음에서 살펴보십시오. http://stackoverflow.com/questions/1407624/ajax-push-server –

답변

0

짧은 폴링 후 짧은 폴링 여기 정말 간단 기본적인 예입니다 아마 현재 당신이

를 설명하는 문제를 해결하는 가장 일반적인 방법입니다 : 페이지로드

, 당신의 JS이 전화 :

setInterval(checkFor, 30000); 

가 위 분명히() (30 초마다 함수 checkFor를 호출합니다, 당신은 하나에 30 초 변경할 수 있습니다 시간 길이 - 사용자를 업데이트하는 방법에 따라 위의 줄에서 30000을 조정하십시오.)

그런 다음 checkForNotifications 함수에서 서버에 대한 업데이트를 요청하는 ajax 호출을 작성합니다. 서버가 yes라고 말하면 JS를 사용하여 경고를 표시합니다 (그렇지 않은 경우 대부분의 시간이됩니다). 가장 가능성이) 다음 아무것도하지 않는 :

function checkFor(){ 
    $.ajax({ 
    url: "your/server/url", 
    type: "POST", 
    success: function(notification) { 
     //Check if any notifications are returned - if so then display alert 
    }, 
    error: function(data){ 
     //handle any error 
     } 
    }); 
} 
관련 문제