SSE에 대한 Microsoft의 완고함은 특히 실용적인 언어가 XMLHttpRequest2
에 불과하므로 표준이 짧으며 3 년 동안 멋진 O'Reilly 서적이 있었으며 적어도 영감을 얻으려는 두 개의 오픈 소스 구현.
iframe = document.createElement("iframe");
iframe.setAttribute("style", "display: none;");
iframe.setAttribute("src", "abc_stream.php");
document.body.appendChild(iframe);
만해야하는 경우 :
어쨌든, 다시 IE8에 호환성을 얻기 위해 권장되는 방법은 새가 어떤 숨겨진 iframe이를 만든 다음 폴링에게 그것의 내부 소스를 유지하고, 단지 반환하는 것입니다 다시 IE10을 지원하기 위해, 당신은 readyState==3
메시지에 XMLHttpRequest2
객체를 사용하고들을 수 있습니다 :
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
//Read this.responseText from the previous offset onwards
};
var u = url;
u += "xhr=1&t=" + (new Date().getTime());
xhr.open("GET", u);
이 기술은 백 엔드에 매우 약간의 지원이 필요합니다 : 클라이언트가 실제 SSE와 연결되어있는 경우, 당신은 하아 MIME 유형을 text/event-stream
으로 설정하고, xhr 해킹을 사용하는 경우 text/plain
으로 설정해야합니다. 위의 그림과 같이 URL에 xhr=1
을 추가합니다 (캐시되지 않도록하는 타임 스탬프).
단일 솔루션을 원한다면 xhr 기술은 SSE가 작동하는 모든 브라우저에서 작동합니다. 하나의 단점은 전송되는 전체 데이터가 메모리에 축적된다는 것입니다. 합니다 (responseText
이 64킬로바이트 이상, 또는 그런 일 때마다 나의 제안은 자동 재 연결하는 것입니다.)