스트리밍 XHR 캐시 제어

Internet Explorer 11에서는 XHR(XMLHttpRequest)을 사용하여 다운로드한 데이터를 msCaching 특성으로 비디오 컨트롤에 전달하기 전에 디스크에 쓰거나 캐시할지 여부를 보다 강력하게 제어할 수 있습니다.

XHR를 사용하여 비디오 데이터를 다운로드하면 msCaching 특성을 통해 데이터를 디스크(캐시)에 쓸 것인지 여부를 제어하여 전원을 절약하고 재생 대기 시간을 줄일 수 있습니다.

XHR을 사용하여 스트리밍된 데이터를 캐시하지 않으면 태블릿과 노트북의 배터리 사용 시간이 길어지며 디스크 대기 시간 병목을 방지할 수 있습니다.

스트림 응답에 대해 자동 또는 수동 msCaching 값을 지정할 수 있습니다. 캐싱 상태를 설정하려면 msCaching을 사용하고, 현재 상태를 가져오려면 msCachingEnabled() 메서드를 사용합니다.


xhr.msCaching = ['auto'|'enabled'|'disabled']   // sets caching state (default is disabled)
var cachingState = xhr.msCachingEnabled();  // reads current caching state (true|false)

msCaching 특성에는 여러 유형의 responseTypes에 대한 다음 상태가 있습니다.

상태응답 형식msCachingEnabled()
autostream|ms-streamfalse
enabledstream|ms-streamtrue
auto|enabledarraybuffer|blob|document|json|texttrue
disabled모든 형식false

 

msCaching 특성을 사용하면 IE11에서 디스크에 캐시할지(true) 또는 캐시하지 않을지(false)를 가져오거나 설정할 수 있습니다.

msCachingEnabled()에서 false를 반환하면 XHR 스트림이 디스크에 캐시되지 않습니다. msCachingEnabled()에서 true를 반환하면 XHR이 Internet Explorer 10에서와 동일한 방식으로 작동합니다. 캐싱이 사용되는 경우 IE11에서는 캐시 제어 헤더와 같은 모든 캐시 제어 메커니즘을 따릅니다. 즉, 캐싱이 발생하지 않을 때 msCaching XHR 특성을 사용하여 강제로 캐싱을 실행할 수 없습니다.

기본적으로 IE11에서는 msCaching 특성이 설정되어 있지 않아도 스트림 응답 형식을 선택하면 자동으로 디스크 캐싱을 건너뜁니다. 이 조각은 msCaching = 사용 안 함 기본 상태를 보여 줍니다.


        var xhr = new XMLHttpRequest();
        xhr.open('GET', url, true);
        xhr.responseType = 'stream';  
        xhr.send();


이 예제에서는 Internet Explorer 10처럼 동작하도록 캐싱을 사용으로 설정합니다.


        var xhr = new XMLHttpRequest();
        xhr.open('GET', url, true);
        xhr.msCaching = 'enabled';  
        xhr.responseType = 'stream';  
        xhr.send();


참고  XHR이 OPENED 상태인 경우에만 msCaching을 설정할 수 있습니다. 이 규칙을 위반하는 경우에는 InvalidStateError 예외가 발생합니다.

관련 항목

XMLHttpRequest
msCaching
msCachingEnabled

 

 

표시:
© 2014 Microsoft