문제

서버의 명백한 과중한 로드를 제외하고 동시에 여러 개의 AJAX 폴링이 진행되는 것이 나쁜가요?아니면 브라우저/서버가 ​​처리할 수 있는 작업에 제한이 있나요?

예(모든 AJAX 폴링)..

  • 함수 A는 글로벌 채팅 시스템(예: Facebook/MySpace)에 대한 새 메시지를 가져오는 3초 간격입니다.

  • 기능 B는 업데이트를 가져오고 사용자에게 표시할 작업(예: 온라인 포커 애플리케이션)을 위해 2초 간격으로 이루어집니다.

  • 함수 C는 4초 간격으로 작동하지만 별도의 메시징 시스템을 위해 새 메시지를 가져오기도 합니다.

도움이 되었습니까?

해결책

브라우저는 도메인당 동시 연결을 4개(또는 실제로는 2개)로 제한했습니다.대부분의 최신 브라우저는 이를 6 또는 8로 늘렸습니다(내 자체 테스트 및 일부 지원 읽기를 기반으로 함).

따라서 긴 폴링 연결은 브라우저의 해당 슬롯을 차지할 수 있으며 잠재적으로 다른 항목이 빠르게 다운로드되는 것을 방해할 수 있습니다.

그렇지 않으면 느린 연결(전화 접속 또는 셀룰러 네트워크)을 사용하는 사람들에게 대역폭을 많이 차지할 수 있습니다.

다른 단점도 있을 수 있지만 제가 보기에는 크게 두 가지 단점이 있습니다.

다른 팁

동시에 2개 이상의 활성 AJAX 연결이 필요하지 않습니다.예를 들어 서버는 헤더로 응답하지만 전달할 데이터가 있으면 엔터티 본문을 보냅니다.

A, B, C를 사용하여 위에서 설명한 것과 같이 폴링 구성표를 실행하는 경우 3개의 요청을 번갈아 사용하는 하나의 AJAX 스레드를 사용하여 수행할 수 있지만 시간 초과 값은 다음 요청 간격으로 설정됩니다.하나의 단일 AJAX 스레드를 사용하여 A, B 및 C에 요청을 배포하는 가상의 타임라인을 만듭니다.

일부 모바일 장치(예:iPad)는 하나 이상의 보류 중인 xhr 요청을 질식시킵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top