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

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
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:

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 811431 - Última Revisão: 05/31/2007 02:46:37 - Revisão: 3.6

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbhowtomaster kbdatabinding kbcaching kbwebforms kbinfo KB811431 KbMtpt
Comentários