Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lote14

[Resolvido] cache no asp

Recommended Posts

em busca de melhorar o desempenho do meu site, li a respeito de cache.

 

um lance que ao invés de o server buscar informação no banco busca no cache e ai melhoraria o desempenho do site.

 

como é esse lance alguem sabe?

 

é só colocar response.expires="true" ?

 

alguem poderia me explicar na pratica com codigo de exemplo como é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa assim:

 

response.expires = 0
response.expiresabsolute = Now() -1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
Session.Contents.RemoveAll()
Session.Abandon

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este código fará com que não use o cache e assim sempre se precise buscar informações novamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe cara o amadorismo, se não utilizarmos o cache a tendencia não é que fique mas lento,ou seja prmeiro o browser verifica se a página ja existe em cache e se já existe não precisa ser executada pelo server.

 

não é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente isso

 

naturalmente o cache deveria ser usado

Compartilhar este post


Link para o post
Compartilhar em outros sites

então esse código faz com que a pagina não use o cache, certo? e como faço para utilizar o cache? é aconselhável utilizar o cache?

 

 

 

 

tenho uma página onde as pessoas resolvem questões de concursos online.

 

www.gabarite.com.br

 

como poderia usar o canhe para melhoar o desenpenho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A propriedade CacheControl define se um servidor proxy cache pode o resultado gerado por ASP ou não. Por padrão, um servidor proxy não irá manter uma cópia de cache

Compartilhar este post


Link para o post
Compartilhar em outros sites

"não irá manter uma cópia de cache "

 

NÃO MANTENDO a página em cache o site ganha? é isso?

 

eu pensava que salvando a pagina em cache ganharia em velocidade, pois quando o server fosse carregar a pagina ja estaria em cache.

 

 

mas acho que estava pensando errado, pois agora pensando melhor, se o browser precisar salvar em cache toda vez que carrega a pagina, isso faz com que demore mais a carregar, é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinto uma pequena confusão no ar.

 

O cache serve para tornar mais rapido o acesso ao site.

Por exemplo, imagine um site que para carregar todo seu conteudo pela primeira vez, ele leve 1 minuto.

 

Ao visita-lo pela segunda vez ele carregou em 20 segundos.

Porque essa diferença de velocidade de carregamento ?

 

Porque o navegador do visitante não tinha ele armazenado no cache do computador (conhecido também com arquivos temporarios do ie ou qualquer outro browser)

 

Além disso, provedores de acesso também podem criar um cache das paginas mais acessadas para assim "economizar" banda, usando essa "sobra" para outros serviços e/ou recursos.

 

O uso disso normalmente está atrelado ao uso de um sistema de proxy onde o acesso é compartilhado em varias maquinas e por isso é feito o armazenamento local das paginas mais acessadas para carrega-las mais rapidamente.

 

Isso funciona da seguinte forma: o navegador vai acessar um site: www.imasters.com.br o navegador manda esse pedido para o servidor do seu provedor de acesso, que verifica se tem uma copia desse site, e já manda o retorno para seu navegador que vai carregando, ao mesmo tempo que verifica se houve alterações no site desde a ultima visita, caso não tenha havido nenhuma alteração, ou não houve alterações em partes desse site, as partes que não foram alteradas, são "liberadas" para o navegador já ir carregando e exibindo ao usuário, enquanto as partes alteradas ainda estão sendo baixadas.

 

Normalmente, usa-se essas tags para não armazenar nada pois evita-se dessa forma que um conteudo desatualizado seja exibido (o risco é pequeno, mas existe), e serve também para sites com alteração de conteudo muito grande, de forma que inviabilize o armazenamento de uma copia do site.

 

Além disso, existe a questão do uso da memoria nos servidores para essa tarefa, ao informar que não precisa fazer isso, a porção de memoria que seria alocada para isso, pode executar outra tarefa mais importante, como uma paginação de produtos ou um cálculo qualquer.

 

Claro que falando assim, e imaginando um unico navegador fazendo isso, fica irrelevante fazer ou não, mas num site com uma visitação muito alta isso faz diferença.

 

Acho que é mais ou menos isso, não sei se fui claro

Compartilhar este post


Link para o post
Compartilhar em outros sites

o conceito é muito importante .

 

clareou amigo, valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

só complementando, é 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.

 

fonte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.