Controle de cache XHR de streaming

No Internet Explorer 11, você tem mais controle sobre se os dados baixados através de XMLHttpRequest (XHR) são gravados ou não no disco, ou armazenados em cache, antes de serem passados para o controle de vídeo usando o atributo msCaching.

Ao baixar dados de vídeo via XHR, você pode usar o atributo msCaching para controlar se os dados devem ou não ser gravados em disco (cache) para economizar energia e diminuir a latência de reprodução.

Se você não armazenar em cache os dados transmitidos com XHR, a bateria de tablets e notebooks poderá ter maior vida útil, com menor possibilidade de afunilamentos de latência de disco.

Você pode especificar valores automáticos ou manuais de msCaching para respostas de fluxo. Use o msCaching para definir o estado do cache e use o método msCachingEnabled() para obter o estado atual.


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

O atributo msCaching inclui estes estados para os diferentes tipos de responseTypes:

EstadoTipo de repostamsCachingEnabled()
automáticostream|ms-streamfalso
habilitadostream|ms-streamverdadeiro
auto|enabledarraybuffer|blob|document|json|textverdadeiro
desabilitadoqualquer tipofalso

 

O atributo msCaching permite que você obtenha ou defina se o IE11 armazena em cache no disco (verdadeiro) ou não (falso).

Quando msCachingEnabled() retorna false, os fluxos XHR não são armazenados em cache de disco. Quando msCachingEnabled() retorna verdadeiro, o XHR funciona do mesmo modo que no Internet Explorer 10. Quando o armazenamento em cache está habilitado, o IE11 respeita qualquer mecanismo de controle de cache; por exemplo, cabeçalhos de controle de cache. Isso significa que o atributo XHR msCaching não pode ser usado para forçar o armazenamento em cache nos casos em que esse armazenamento não ocorre de outra forma.

Por padrão, o IE11 ignora automaticamente o armazenamento em cache quando você seleciona um tipo de reposta de fluxo, mesmo que o atributo msCaching não esteja definido. Este trecho de código mostra o estado padrão de msCaching = disabled.


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


Esse exemplo define o cache como habilitado, para que ele funcione como no Internet Explorer 10


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


Observação  Você só poderá definir msCaching quando o XHR estiver no estado OPENED. Se essa regra for violada, uma exceção InvalidStateError será lançada.

Tópicos relacionados

XMLHttpRequest
msCaching
msCachingEnabled

 

 

Mostrar:
© 2014 Microsoft