|
|
|
|
|
Dicas
|
|
ASP - Active Server Page (Miscelâneas)
|
|
|
Título da Dica: Melhorando o controle de cache com checagem em background
|
|
|
|
Postada em 1/10/2003 por ~Ð@®£@Ñ
Em dica anterior já haviamos comentado sobre a utilização do cabeçalho cache-control para impedirmos que uma página seja inserida em cache, configurando o cache-control como no-check.
Mas além do no-check existem outras possibilidades interessantes de configuração do cache-control : post-check e pre-check.
A questão é : Se um objeto que encontra-se no cache não sofreu nenhuma atualização no servidor web então não precisa ser trazido para a máquina do usuário. Mas se sofreu atualização deve ser recuperado.
Desta forma para os dois parâmetros acima podemos configurar 2 intervalos de tempo : O intervalo de tempo configurado para o parâmetro post-check determina que enquanto o arquivo em cache não for mais velho que este tempo ele deve ser exibido diretamente do cache, mas o IE deve, em background, consultar o servidor para saber se houve atualização e, em caso afirmativo, atualizar a informação na página.
Já o intervalo configurado para pre-check indica que, sendo o arquivo em cache mais velho que este tempo ele deve ser imediatamente recuperado do servidor, independentemente de qualquer comparação por atualizações.
Veja um exemplo :
<%@ LANGUAGE="jscript" %> <% Response.AddHeader("Cache-Control", "post-check=120,pre-check=240"); %>
<H1>Hello, world!</H1>
Neste exemplo, se o usuário solicitar a mesma página em menos de 2 minutos ela virá diretamente do cache sem qualquer consulta ao servidor. Se, porém, a 2a solicitação ocorrer 2 minutos ou mais após a primeira então o IE exibirá a página do cache mas consultará o servidor para verificar eventuais atualizações que tenham ocorrido, mas se a 2a solicitação ocorrer a mais de 4 minutos depois que a 1a a página será recuperada diretamente do servidor, sem consulta ao cache.
Observe que os parâmetros são configurados como segundos. Cuidado também com a utilização de buffer junto com essa instrução, em geral o buffer precisa estar ativado.
|
|
|
|
|