|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net - CodigoFonte.net |
Utilização ou não do CacheVemos as ferramentas que estão a nossa disposição em ASP que nos ajudam a controlar o uso do cache dos navegadores e servidores proxy. É habitual que os programadores de páginas dinâmicas que ver com o cache, em algumas ocasiões e tenham que evitar que os navegadores a utilizem para que tudo funcione corretamente. Existem várias opções para configurar o comportamento do cache através dos cabeçalhos do HTTP, que são o que vamos introduzir neste capítulo.
Em geral, os navegadores salvam uma cópia de cada arquivo ao qual acessar no cache do navegador e quando consultam outra vez um arquivo que já tem no cache local comprovam a data da cópia que têm com a que está no servidor. Se os dois têm a mesma data de modificação o servidor lhe envia uma mensagem informando. Se ao contrário, a página que está no servidor é mais nova o servidor a envia ao cliente. Esta comprovação pode ser alterada graças aos cabeçalhos do HTTP, através das propriedades Response.Expires e Response.ExpiresAbsolute. Response.Expires Serve para indicar, em minutos, o tempo que há que passar até que a página perca a validade. Durante este tempo não se solicitará a página ao servidor e se utilizará a página que está no cache. <% response.expires=2 'vencerá em 2 minutos %> Se igualarmos a propriedade a 0, a página caduca instantaneamente, com o qual se evita o cachê. <% response.expires=0 'vence instantaneamente %> Response.ExpiresAbsolute Com esta propriedade pode-se expressar o momento exato no qual caducará a página e a partir do qual o navegador não deve tomar do cache. <% response.expiresAbsolute=dateAdd("yyyy",1,now) 'vencera dentro de um ano %> Neste exemplo se define que a página caduca no ano seguinte depois de haver recebido, visto que se utiliza a função dateAdd() para acrescentar um ano ou a data atual. Poderíamos ter posto qualquer outra data composta pelo dia e a hora com o formato correspondente em nosso sistema. Ejemplos: Páginas públicas o privadas Em algumas ocasiões é importante controlar a privacidade da informação que se manda. Suponhamos que em nosso acesso a Internet tenhamos um proxy perto. Os servidores proxy têm a sua própria memória cache e se um usuário acede a uma página a qual já tinha acessado outro usuário possivelmente o proxy lhe envie a cópia da página que tinha em sua memória cache. Em algumas ocasiões nos interessará que a página sirva o proxy e em outras nos interessará que a página sirva diretamente o servidor e isto poderemos dominar facilmente com Response.Expires. Porém, existe um caso especial que pode ser especialmente problemático que um usuário acesse a uma página que estava construída para outro, por exemplo no caso de que a informação fosse confidencial ou extraída para o usuário primeiro. Para evitar que páginas com conteúdos pessoais possam ser mandadas a outras pessoas distintas de seu dono por culpa dos servidores proxy esá a propriedade Response.CacheControl. Se lhe atribuíamos o valor "Private" a página não será salva pelos servidores proxy. Se lhe atribuímos o valor "Public" as páginas sim que serão armazenadas nos servidores proxy e poderão ser enviadas a outras pessoas. <% Response.CacheControl = "Public" %> <% Response.CacheControl = "Private" %> Outro truque Outra maneira de evitar o cache, pode ser realizado de uma maneira mais artesanal. Trata-se de conseguir que o URL a qual acessamos sempre varie. Como sempre será distinta nunca se buscarão os arquivos do cache. Conseguir que o URL da página seja sempre diferente pode ser feito graças ao passo de parâmetros pela URL, embora logo na página não utilizemos os parâmetros para nada, conseguiremos que a URL varie. Para mandar em um parâmetro sempre um número distinto podemos anexar uma variável que construímos com a hora do sistema. <% Tempo_url = year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now) %> <a href="exemplocachev21.asp?parametro=<%=Tempo_url%>">Ver</a> Não chegar a salvar a página no cache Pode ser útil dizer ao navegador que não chegue a salvar a página no cache mandando-lhe um cabeçalho especial no HTTP, sobretudo em casos como o anterior, que estamos salvando muitas páginas no cache, uma por cada vez que se acesse com um parâmetro diferente na URL. <% Response.AddHeader "PRAGMA", "NO-CACHE" %> Com Response.AddHeader podem ser mandado mais tipos de cabeçalhos do http como a data de modificação do documento (LAST-MODIFIED) ou o tempo no qual tem que se realizar um refresh da página.
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 2 Categorias relacionadas
Manuais relacionados com este artigo Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em ASP+ Entrar em Scripts em ASP Comentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |