Como colocar em cache no ASP.NET utilizando o Visual Basic .NET

Traduções de Artigos Traduções de Artigos
Artigo: 811431 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo descreve como controlar como o ASP.NET em cache páginas Web e objectos de dados. Ao colocar em cache, evita recriar informações quando efectua pedidos posteriores. Colocação em cache é uma técnica importante para criar aplicações de servidor dimensionáveis e de alto desempenho. O primeiro pedido para a página, pode armazenar objectos de dados, páginas ou partes da página na memória. Pode armazenar estes itens no servidor Web, o servidor proxy ou no browser.

Mais Informação

O ASP.NET fornece métodos convenientes para controlar a colocação em cache. Pode utilizar a directiva @ OutputCache para controlar a saída da página Colocação em cache no ASP.NET. Utilize a classe HttpCachePolicy para armazenar objectos arbitrários, tais como conjuntos de dados, a memória do servidor. É possível armazenar a cache em aplicações tais como o browser cliente, servidor proxy e ISS (Serviços de informação Internet Information Services). Utilizando o cabeçalho de HTTP Cache-Control, pode controlar a colocação em cache.

Para obter informações adicionais sobre a cache de saída ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
308516Como saída de página de controlo na cache em ASP.NET utilizando o Visual Basic .NET

Cache de páginas ASP.NET

Pode cache utilizando a directiva @ OutputCache ou programaticamente através de código utilizando o Visual Basic .NET ou Visual C#. NET. A directiva @ OutputCache contém um atributo de localização . Este atributo determina a localização do item em cache. Pode especificar uma das seguintes localizações:
  • qualquer - Isto armazena a cache de saída no browser do cliente, o servidor proxy (ou qualquer outro servidor) que participa no pedido ou no servidor onde o pedido é processado. Por predefinição, qualquer está seleccionada.
  • cliente - Isto armazena cache de saída no browser do cliente.
  • Downstream - este armazena a cache de saída em quaisquer dispositivos que suportam cache (diferente do servidor de origem) que participam no pedido.
  • servidor - Isto armazena a cache de saída no servidor Web.
  • nenhuma - esta desactiva a cache de saída.

Seguem-se exemplos de código para a directiva OutputCache @ e o código equivalente de programação.
  • para armazenar a 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 a cache de saída no browser cliente o pedido de origem

    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 a cache de saída em quaisquer dispositivos que suportam cache de HTTP 1.1 incluindo servidores proxy e o cliente que efectuou o pedido

    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 a 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)
    
  • colocar na cache a saída para cada pedido 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 ' na directiva OutputCache @ , a classe HttpCachePolicy fornece a propriedade VaryByHeaders e a propriedade VaryByParams e o método SetVaryByCustom .

Desactivar o cliente e colocação em cache do proxy

Para desactivar a cache de saída de uma página Web do ASP.NET na localização de cliente e na localização proxy, defina o valor de atributo localização para nenhum e, em seguida, defina o valor VaryByParam para nenhum na directiva @ OutputCache . Utilize os seguintes exemplos de código para desactivar cliente e colocação em cache do proxy.
  • Abordagem declarativa:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • Abordagem programática:
    Response.Cache.SetCacheability(HttpCacheability.NoCache)

Cache arbitrário objectos na memória do servidor

O ASP.NET inclui um mecanismo de colocação em cache poderoso e fácil de utilizar que pode utilizar para armazenar os objetos que requerem bastantes recursos do servidor para criar na memória. A classe de cache implementa este método. Instâncias são privadas para cada aplicação e a duração está associada à aplicação correspondente. Para colocar em cache os objectos arbitrários no ASP.NET utilizando a classe de cache , siga estes passos:
  1. Crie uma nova aplicação Web em ASP.NET utilizando o Visual Basic .NET.
  2. Por predefinição, é criado WebForm1.aspx .
  3. Na vista de 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>
    Nota substituir os valores para ServerName, UID e PWD no código de exemplo para o objecto SqlConnection com o nome do SQL Server, ID de utilizador e palavra-passe.
  4. No menu Debug , clique em Iniciar para executar a aplicação.

    Nota Quando reinicia a aplicação, é criado novamente o objecto em cache .

Referências

Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
234067Como impedir a colocação em cache no Internet Explorer
247404Como modificar o cabeçalho de HTTP Cache-Control quando utilizar o IIS
311006Como impedir a Web colocação em cache no Windows 2000
247389IIS: Como desactivar a colocação em cache de tipos de MIME específicos
313561Como definir cabeçalhos de HTTP para a expiração do conteúdo no IIS


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


Propriedades

Artigo: 811431 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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