새로 고침 없이 웹 페이지에 변경사항 푸시
주기적인 간격의 변화에 대한 여론조사를 통해 이를 수행할 수 있다는 것을 알고 있습니다.그리고 이것은 AJAX에 의해 달성될 수 있습니다(예를 들어 다음과 같이 사용).jQuery.load()
와 함께setInterval()
).
하지만 이것을 할 수 있는 다른 방법이 있는지 알고 싶습니다.비용이 적게 드는 다른 방법 또는 효율적인 방법?멋진 채팅 클라이언트는 어떤 논리를 따르나요?입력을 시작하는 즉시 다른 쪽 끝에서 입력 중임을 알 수 있습니다.
스택 오버플로우에서 페이지를 새로 고치지 않고 업보팅 카운트를 업데이트하거나 편집 등이 이루어졌음을 보여주기 위해 어떤 메커니즘을 따라야 합니까?
클라이언트와 서버를 거의 실시간으로 동기화하는 것과 관련하여 즉시 생각나는 것은 세 가지입니다.
long polling: 클라이언트에서 10초 정도마다 새로운 AJAX 요청을 트리거하는 타이머가 설정되어 있는 이 경우에 대해서는 이미 언급하셨습니다.이것은 아마도 3가지 중에서 가장 "낮은 기술"일 것이며 가장 효율적이지도 않을 것입니다. 하지만 가장 호환성이 있습니다. (IE6/7과 같은 모든 브라우저에서 작동함을 의미합니다.)
WebSockets: sdespont는 이미 댓글에 이 내용을 언급했습니다.WebSockets가 장시간 폴링보다 더 효율적이지만(이는 클라이언트와 서버 간의 통신을 무한정 개방 상태로 유지하기 때문에), 서버로부터 정기적인 업데이트만 받으면 매우 부담스러운 해결책이 될 수 있습니다.Firefox와 Chrome의 모든 버전이 이를 지원하며 IE10에서 지원을 추가했습니다.
서버에서 보낸 이벤트: 이 이벤트는 인기가 적은 것 같습니다(또는 잘 알려지지 않았습니다.서버가 클라이언트에 변경사항을 전송할 수 있습니다(롱폴링의 경우와 마찬가지로 클라이언트가 서버에 변경사항을 요청하는 것과는 반대로).이는 단방향 통신(서버 --> 클라이언트)일 뿐이며, 양방향 통신이 열린 상태로 유지되는 WebSockets와는 달리 요청이 완료된 후 연결이 닫힙니다.다시 한번 말하지만, 모든 브라우저가 이를 지원하는 것은 아니며, IE 지원도 전혀 없습니다.
이것은 또한 보다 현대적인 클라이언트-서버 통신 방식의 차이를 설명하는 좋은 기사입니다.그리고 서버에서 보낸 이벤트에 대한 자세한 정보를 원한다면, 이것은 좋은 기록입니다.
언급URL : https://stackoverflow.com/questions/14051795/push-changes-to-a-webpage-without-refreshing
'programing' 카테고리의 다른 글
Oracle Analytic Functions는 비용이 많이 소요됩니까? (0) | 2023.10.23 |
---|---|
트리거 cs가 JS와 함께 호버 (0) | 2023.10.23 |
파이썬 클래스에서 메소드를 주문하는 좋은 방법은 무엇입니까? (0) | 2023.10.23 |
Spark DataFrame에 빈 열 추가 (0) | 2023.10.23 |
data.frame에서 data.frame으로 단일 열을 추출하려면 어떻게 해야 합니까? (0) | 2023.10.23 |