2010-01-28 7 views
8

저는 Ajax와 JSON에 익숙하여 요청을 보내고 JSON 요청을 구문 분석 할 수 있습니다. 이상적으로는 진행률 표시 줄을 주기적으로 업데이트하기 위해 여러 응답을 받고 싶습니다. 이렇게하면 고객은 긍정적 인 피드백을받을 수 있습니다.javascript를 사용하여 서버에서 클라이언트로 json을 "스트리밍"하는 방법

JSON 스트림에 대해 들어 봤지만이를 구현하는 방법에 대한 좋은 자료를 찾지 못했습니다. 아무도 좋은 자원 또는 이것을하는 방법을 알고 있습니까?

답변

1

JSON은 텍스트, html, pdf 등의 HTTP 프로토콜을 사용하는 데이터의 또 다른 형식입니다. 아마도 cometd을 언급하고있을 것입니다.

이렇게하면 영구 연결을 열고 서버에서 클라이언트로 데이터를 푸시 (즉, 스트림) 할 수 있습니다. 모든 형식이 푸시하는 데 유효하며 클라이언트는이를 이해해야합니다.

+0

물론 JSON 조각을 올바르게 스트리밍하는 방법은 무엇입니까? –

+0

음 ... 내 대답은 내 최선이 아니 었어. 하지만 기본적으로 내 경험은 여기에 표준이 없다는 것입니다. 내가 본 일은 델리 미터를 정의하는 것입니다. 개행을 사용하면 꽤 잘 작동합니다. 결과적으로 클라이언트는 스트림을 "읽기"만합니다. 각 줄은 소비되는 전체 json 개체/페이로드로 가정됩니다. – mlathe

0
<script language="JavaScript"> 
    function doSomething() { 
    // do something here... 
    } 
    setInterval('doSomething()',10000); 
<script> 

이는 10 초마다 기능을 호출합니다. 따라서 서버를 10 초 (또는 1 초)마다 폴링하여 추적하려는 이벤트의 상태에 대한 응답을 얻을 수 있습니다. 그 함수 안에 AJAX 호출을 넣으면 보내질 것입니다.

+0

이것은 스트리밍 중이 아닙니다. –

+0

7 년 전이 답변을 작성했을 때 WebSocket은 사실이 아니었고 유일한 진정한 스트리밍 옵션은 Flash였습니다. "Stream"이 질문에 인용되어 있었기 때문에 "폴링 솔루션은 실행 가능하고 구현하기 쉽고 타사 소프트웨어에 대한 의존성이 부족했습니다."라는 질문에 "진행률 막대를 주기적으로 업데이트하기 위해 여러 응답을 받고 싶습니다." . 나는 그것이 스트리밍되지 않는다는 것을 안다. 그러나 요청은 기술적 요구 사항이 아닌 동사로 사용되었다. –

+0

7 년 전 스트리밍은 긴 폴링으로 수행되었습니다. 당시 채팅 응용 프로그램을 스트리밍했습니다. 들어오는 메시지가 스트리밍되었습니다. 그래서 이것은 7 년 전에도 스트리밍하지 않았습니다. –

0

"혜성"라이브러리를 살펴보십시오. 그것은 "역 AJAX"로 알려진 것을 구현합니다. 서버에서 클라이언트로 이벤트를 쉽게 보낼 수 있습니다.

내 제안 바로 전에 제안 된 폴링 제안도 완벽하게 유효합니다.

1

page streaming이라는 기술이 있습니다.

기본적으로 <script>some js</script> 항목을 영구 연결에 쓰고 네트워크 인터페이스로 플러시합니다. 브라우저가 그것을 받으면 스크립트를 구문 분석하고 실행합니다.

관련 문제