JavaScript를 사용한 서버 폴링
데이터를 매우 빠르게 새로 고쳐야 하는 응용 프로그램에 대해 JavaScript로 서버를 폴링하는 좋은 방법은 무엇입니까?프론트엔드에는 jQuery를, 백엔드에는 Java Spring Framework를 사용하고 있습니다.
새로 고침된 데이터의 예로는 매우 빠르게(매 1초마다) 업데이트되는 항목 목록을 들 수 있습니다.
jQuery의 Ajax 함수를 사용하여 매초마다 서버를 폴링할 수 있습니다.그러면 서버는 거의 실시간으로 브라우저에 대한 지시사항으로 응답할 수 있습니다.
폴링 빈도를 늘리지 않고 지연 시간을 줄이기 위해 위의 내용 대신 긴 폴링을 고려할 수도 있습니다.
긴 폴링 혜성 기술은 지연 시간을 줄이기 위해 전통적인 폴링을 최적화하는 기술입니다.
기존의 여론 조사는 다음과 같은 메시지를 보냅니다.
XMLHttpRequest
일정한 간격으로 서버에 전송됩니다.예를 들어, 새로 열기XMLHttpRequest
15초마다 즉시 응답을 수신하고 연결을 닫습니다.긴 폴링은 서버에 요청을 발송하지만 응답을 사용할 수 있을 때까지 응답이 클라이언트에 반환되지 않습니다.클라이언트가 응답을 수신하거나 요청 시간이 초과되면 연결이 닫히는 즉시 새 연결이 시작됩니다.서버는 일반적으로 클라이언트에 정보를 반환할 준비가 되었을 때 연결을 설정하므로 지연 시간이 상당히 줄어듭니다.
위의 내용 외에도 다음 Stack Overflow 게시물에 대한 승인된 답변을 확인하여 긴 폴링 기술에 대한 자세한 설명을 참조할 것을 제안합니다.
저는 긴 폴링이나 푸시를 사용하자는 다니엘의 제안에 찬성합니다.체크아웃
CometD는 Comet로 알려진 Ajax Push 기술 패턴을 사용하는 확장 가능한 HTTP 기반 이벤트 라우팅 버스입니다.혜성'이라는 용어는 알렉스 러셀이 그의 포스트 Comet: Low Latency Data for the Browser에서 만들었습니다.
Spring과 함께 작업하는 방법을 설명하는 페이지가 있습니다.
2018년 기준으로 약속 구문과 함께 가져오기 함수를 사용해야 합니다.
<script type="text/javascript">
setInterval(function(){
fetch("your_serverside_script.php") // Any output from the script will go to the "result" div
.then(response => response.text())
.catch(error => document.getElementById("result").innerHTML = error)
.then(response => document.getElementById("result").innerHTML = response)
}, 1000); // Poll every 1000ms
</script>
<div id="result">result will appear here</div>
언급URL : https://stackoverflow.com/questions/3583203/server-polling-with-javascript
'programing' 카테고리의 다른 글
Invoke-WebRequest : '헤더' 매개 변수를 바인딩할 수 없습니다. (0) | 2023.07.30 |
---|---|
파이썬 스크립트를 이진 실행 파일로 컴파일하는 방법 (0) | 2023.07.30 |
aspx 페이지 뒤에 있는 코드의 변수를 호출하는 방법 (0) | 2023.07.30 |
Node.js가 지원하는 인코딩 목록 (0) | 2023.07.30 |
HTTP 응답을 보낸 후 PHP 실행 계속 (0) | 2023.07.30 |