Como cache no ASP.NET usando o Visual Basic .NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 811431 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve maneiras de controlar como o ASP.NET armazena páginas da Web e objetos de dados. Armazenando em cache, você evitar recriar informações quando você faz solicitações posteriores. O cache é uma técnica importante para criar aplicativos de servidor escalonáveis e de alto desempenho. Na primeira solicitação para a página, você pode armazenar objetos de dados, páginas ou partes da página na memória. Você pode armazenar esses itens no servidor Web, no servidor proxy ou no navegador.

Mais Informações

O ASP.NET fornece métodos convenientes para controlar o cache. Você pode usar a diretiva @ OutputCache para controlar a saída da página em cache no ASP.NET. Use a classe HttpCachePolicy para armazenar objetos arbitrários, como datasets, à memória do servidor. Você pode armazenar o cache em aplicativos, como o navegador do cliente, o servidor proxy e o Microsoft Internet Information Services (IIS). Usando o cabeçalho de HTTP Cache-Control, você pode controlar o cache.

Para obter informações adicionais sobre cache de saída do ASP.NET, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
308516Como saída de página de controle de armazenamento em cache no ASP.NET usando o Visual Basic .NET

Páginas do cache ASP.NET

Você pode cache usando a diretiva @ OutputCache , ou programaticamente por meio de código usando o Visual Basic .NET ou Visual translation from VPE for Csharp. NET. A diretiva @ OutputCache contém um atributo Location . Esse atributo determina o local para o item em cache. Você pode especificar um dos seguintes locais:
  • qualquer - isso armazena o cache de saída no navegador do cliente, no servidor proxy (ou qualquer outro servidor) que participa na solicitação ou no servidor onde a solicitação será processada. Por padrão, qualquer está selecionada.
  • cliente - este armazena o cache de saída no navegador do cliente.
  • Downstream - isso armazena o cache de saída em qualquer dispositivos com capacidade de cache (que não seja o servidor de origem) que participam a solicitação.
  • servidor - isso armazena o cache de saída no servidor Web.
  • Nenhum - essa desativa o cache de saída.

A seguir estão exemplos de código para a diretiva @ OutputCache e o código equivalente programático.
  • para armazenar o cache de saída para um período especificado

    Abordagem declarativa:
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    Abordagem programática:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
  • para armazenar o cache de saída no cliente navegador que originou a solicitação

    Abordagem declarativa:
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    Abordagem programática:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Private)
    
  • para armazenar o cache de saída em quaisquer dispositivos capazes de cache HTTP 1.1 incluindo os servidores proxy e o cliente que fez a solicitação

    Abordagem declarativa:
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    Abordagem programática:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetNoServerCaching()
  • para armazenar o cache de saída no servidor Web

    Abordagem declarativa:
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    Abordagem programática:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Server)
    
  • para armazenar em cache a saída para cada solicitação HTTP que chega com uma cidade diferente

    Abordagem declarativa:
    <%@ OutputCache duration="60" varybyparam="City" %>
    

    Abordagem programática:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.VaryByParams("City") = true
    
    Para o atributo VaryByCustom , o atributo VaryByHeader e o atributo VaryByParam na diretiva @ OutputCache , a classe HttpCachePolicy fornece a propriedade VaryByHeaders e a propriedade VaryByParams e o método SetVaryByCustom .

Desativar o cliente e cache de proxy

Para desativar o cache de saída para uma página ASP.NET, o local de cliente e o local de proxy, defina o valor de atributo de local para Nenhum e, em seguida, defina o valor VaryByParam para Nenhum na diretiva @ OutputCache . Use os exemplos de código a seguir para desativar o cliente e proxy de cache.
  • Abordagem declarativa:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • Abordagem programática:
    Response.Cache.SetCacheability(HttpCacheability.NoCache)

Armazenar em cache objetos arbitrários na memória do servidor

O ASP.NET inclui um mecanismo de cache poderoso e fácil de usar, que você pode usar para armazenar objetos que exigem muitos recursos do servidor para criar na memória. A classe de cache implementa esse método. Instâncias são particulares para cada aplicativo e o tempo de vida está vinculado ao aplicativo correspondente. Para armazenar em cache os objetos arbitrários no ASP.NET usando a classe de cache , execute estas etapas:
  1. Crie um novo aplicativo Web ASP.NET usando Visual Basic. NET.
  2. Por padrão, WebForm1.aspx é criado.
  3. No modo de exibição HTML de WebForm1.aspx , substitua o código existente com o seguinte código de exemplo:
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="System.Data" %>
    <HTML>
    	<script language="vb" runat="server">
    
    		Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    			Dim Source As DataView
    
    		'Retrieve the DataView object from the Cache class. If it does not exist, add the DataView object to the Cache class.
    
    		Source = CType(Cache("MyDataSet"), DataView)
    
    		If Source Is Nothing Then
    
    			Dim myConnection As SqlConnection = New SqlConnection("Server=ServerName; database=Pubs; user id=UID; password=PWD;")
    			Dim myCommand As SqlDataAdapter = New SqlDataAdapter("select * from Authors", myConnection)
    			Dim ds As DataSet = New DataSet()
    			myCommand.Fill(ds, "Authors")
    
    			Source = New DataView(ds.Tables("Authors"))
    			Cache("MyDataSet") = Source
    			CacheMsg.Text = "Dataset created explicitly"
    			
    		Else
    			
    			CacheMsg.Text = "Dataset retrieved from cache"
    
    		End If
    
    		' Bind the DataView object to DataGrid. 
    		MyDataGrid.DataSource = Source
    		MyDataGrid.DataBind()
    
    		End Sub
    
    	</script>
    	<body>
    		<form method="GET" runat="server" ID="Form1">
    	      <h3><font face="Verdana">Caching Data</font></h3>
    			<ASP:DataGrid id="MyDataGrid" runat="server"
    			Width="700"
    			BackColor="#ccccff"
    			BorderColor="black"
    			ShowFooter="false"
    			CellPadding=3
    			CellSpacing="0"
    			Font-Name="Verdana"
    			Font-Size="8pt"
    			HeaderStyle-BackColor="#aaaad" />
    			<p>
    			<i><asp:label id="CacheMsg" runat="server"/></i>
    	    </form>
    		</P>
    	</body>
    </HTML>
    Observação substituir os valores para ServerName, UID e PWD no código de exemplo para o objeto SqlConnection com o nome do SQL Server, ID de usuário e senha.
  4. No menu Debug , clique em Iniciar para executar o aplicativo.

    Observação Quando você reinicia o aplicativo, o objeto em cache será recriado.

Referências

Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
234067Como impedir o cache no Internet Explorer
247404Como modificar o cabeçalho HTTP Cache-Control quando usa o IIS
311006Como impedir o cache de Web no Windows 2000
247389IIS: Como desativar o cache de tipos de MIME específicas
313561Como definir cabeçalhos HTTP para expiração de conteúdo no IIS


Para obter mais informações, visite o seguinte site:
http://msdn2.microsoft.com/en-us/library/xsbfdd8c(vs.71).aspx


Propriedades

ID do artigo: 811431 - Última revisão: quinta-feira, 31 de maio de 2007 - Revisão: 3.6
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbhowtomaster kbdatabinding kbcaching kbwebforms kbinfo KB811431 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 811431

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com