2014-04-06 2 views
1

저는 서버의 새 데이터로 내 페이지를 자동으로 업데이트하는 옵션을 찾고있었습니다. 내 데이터가 10 분에서 1 시간으로 변경 될 수 있으므로이를 예측할 수 없습니다. 이런 일이 생길 때마다 변경 사항이 화면에 나타나야합니다 (15 초 이내).30 ~ 30 분마다 서버에서 데이터를 검색하는 가장 좋은 방법은 무엇입니까?

하나의 옵션은 폴링하고 15 초마다 요청을 보내는 것입니다. 그런 다음 서버에 요청을 보내고 30 분 이상 빈 결과를 얻으면 약간 어리석은 소리가납니다.

그러나 긴 폴링을 사용하는 경우 장기간 연결을 유지하는 것이 허용됩니까? 거의 한 시간 동안 새로운 데이터가 없다면 어떨까요? 또한 긴 폴링을 사용하는 경우 제한 시간을 설정해야합니다. 그렇지 않습니까? 그러나 서버에 새로운 데이터가있을 수 있다는 것을 알고 연결을 종료 한 다음 연결을 다시 시작하는 것은 의미가 없습니다. 더 긴 간격으로 정기적 인 폴링이 될 것입니다. 그렇지 않습니까?

누가 내 문제에 대한 최선의 해결책을 안내 할 수 있다면 감사하겠습니다. 미리 감사드립니다!

+1

[Server-sent event] (https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events)를 원하는 것처럼 보입니다. –

답변

1

이전 브라우저를 지원해야하는 경우 폴링 만 선택할 수 있습니다.

이 경우 HEAD 메서드는 매우 가볍고 상황이 변경되었음을 나타내는 상태를 반환 할 수 있습니다. 당신이 새로운 브라우저를 지원할 수있는 경우

, 당신은 위에서 언급 한 @MikeW 방법을 사용할 수 있습니다, 또는 당신은 내가 폴링에 대한 더 많은 내용이수록되어 this discussion을 발견 WebSockets

볼 수 있었다.

+0

그런 다음 이전 브라우저가 문제 일 수 있습니다. .. 15 초마다 폴링을 끝내면 빈 결과를 얻는 것이 대부분입니다. 얼마나 나쁜 것입니까? 그것은 단지 비효율적입니까, 아니면 단순히 잘못되어 "나쁜"프로그래밍입니까? – thomas

+0

Gmail과 같은 사이트는 구형 브라우저에 '가벼운'환경을 제공 (제공)하지만 이러한 결정은 사업상의 결정입니다. –

+0

모든 정직함 - 나는이 상수 요청이 나쁜지를 예측하는 방법을 모르며 처리 할 수없는 비용을 부담해야합니다 ... 우리 사무실에서 약 20 개의 브라우저에서 사이트가 계속 열려 있다고 말하면, 15-20 초마다 요청을 보내면 정말 안좋은가요? 그것은 그것이 많이 들리는 것처럼 들리지만, 나는 정말로 모른다. – thomas

관련 문제