Como cache de saída de página de controlo no ASP.NET utilizando o Visual C# .NET

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

Nesta página

Sumário

Este artigo demonstra como utilizar a directiva @ OutputCache para controlar a colocação em cache no ASP.NET com o Visual C# .NET saída da página. Pode utilizar esta técnica para colocar em cache páginas frequentemente acedidas do site que podem aumentar substancialmente o débito de seu servidor Web. O débito é normalmente medido em pedidos por segundo. Apesar do código de exemplo neste artigo demonstra como utilizar os atributos de VaryByParam na e duração , este artigo também inclui uma breve descrição de outras abordagens que podem ser utilizados com a directiva @ OutputCache .

Nota : não é a intenção deste artigo para descrever todos os atributos directiva OutputCache @ e utiliza os possíveis no detalhe. Para mais informações, consulte as References secção.


Requisitos

  • Microsoft Windows 2000 ou Windows XP
  • Microsoft .NET framework
  • Microsoft Internet Information Server (IIS)
  • O Microsoft ASP.NET

Introdução para a @ OutputCache directiva

Para utilizar a directiva @ OutputCache para controlar a colocação em cache de saída de página, pode simplesmente adicione a diretiva a parte superior da página. O método Page.InitOutputCache converte a directiva em métodos de classe HttpCachePolicy .

A directiva @ OutputCache inclui as seguintes atributos e definições:
  • duração : este atributo especifica quanto tempo um item é mantido na cache. O valor de duração está listado em segundos.
  • VaryByParam na : este atributo determina entradas de cache pelos parâmetros de GET ou POST . Por exemplo, se uma variável QueryString denominada testVal estiver definida para o atributo ' VaryByParam na , cada pedido de página que contém um valor diferente para testVal é colocada em cache numa página separada. O seguinte código ilustra a sintaxe para o atributo ' VaryByParam na :
    <%@ OutputCache Duration="Seconds" VaryByParam="testVal"%>
    						
    Nota : pode especificar um asterisco (*) para que todas as versões diferentes do produto são colocados em cache. Além disso, pode especificar "nenhum" Se só existe uma versão de um item em cache.
  • localização : este atributo determina onde o produto se devem ser colocados em cache. Pode especificar as seguintes localizações:
    • qualquer
    • cliente
    • Descendente
    • servidor
    • nenhum

    O seguinte código ilustra a sintaxe para o atributo de localização :
    <%@ OutputCache Duration="Seconds" Location="Client" %>
    					
  • VaryByCustom : este atributo contém a predefinição browser , que significa uma ocorrência de um item diferente é colocada em cache para cada versão de browser o solicitar. Por exemplo, ambos os Microsoft Internet Explorer 5 e o Internet Explorer 5.5 pedem o item. Quando VaryByCustom está definida como browser , existe uma entrada de cache para cada versão do browser. Não pode fornecer uma cadeia para controlar a colocação em cache para outros cenários personalizados. A cadeia não tem qualquer significado, a menos que forneça código para substituir o método HttpApplication.GetVaryByCustomString no ficheiro global.asax.

    O seguinte código ilustra a sintaxe para o atributo VaryByCustom :
    <%@ OutputCache Duration="Seconds" VaryByCustom="string" %>
    					
  • VaryByHeader : este atributo permite-lhe especificar um determinado valor de cabeçalho HTTP como critérios para determinar entradas de cache diferente. O seguinte código ilustra a sintaxe para o atributo VaryByHeader :
    <%@ OutputCache Duration="60" VaryByHeader="Accept-Language" %>
    					

Passos para criar o exemplo de @ OutputCache duração

Os seguintes passos demonstram como utilizar o atributo de duração para saída da página em cache para especificar o período de tempo para um item em cache.
  1. Crie um novo projecto de Visual Basic ASP.NET Web Application da seguinte forma:
    1. Abra o Visual Studio. NET.
    2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
    3. Na caixa de diálogo Novo projecto , clique em Visual C# Projects em Project Types e clique em ASP.NET Web Application em Templates . Na caixa de texto nome , escreva OutputCacheDemo e, em seguida, clique em OK .
  2. Crie uma página .aspx novo no Visual Studio .NET da seguinte forma:
    1. No Solution Explorer, clique com o botão direito do rato no nó de projecto, clique em Adicionar e, em seguida, clique em Adicionar formulário de Web .
    2. Na caixa de texto nome , escreva OutputCacheDuration.aspx e, em seguida, clique em Abrir .
  3. Elimine o código predefinido que Visual Studio .NET adiciona a página.
  4. Realce o código seguinte, clique com o botão direito do rato no código e, em seguida, clique em Copiar . No Visual Studio. NET, clique em Colar como HTML no menu Editar para colar o código para a página .aspx:
    <%@ OutputCache Duration="20" VaryByParam="none"%>
    <HTML>
       <HEAD>
       <script language="C#" runat="server">
       void Page_Load(object sender, EventArgs e) 
       {	
          Label1.Text = "Time: " + DateTime.Now.TimeOfDay.ToString();
       }
       </script>
       </HEAD>
       <body>
          <STRONG>@ OutputCache Duration Sample</STRONG>
          <hr>
          <br>
          <asp:Label id="Label1" runat="server">Label</asp:Label>
          <br>
       </body>
    </HTML>
    					
  5. No menu ficheiro , clique em Guardar OutputCacheDuration.aspx para guardar a página.
  6. Menu criar em IDE (Integrated Development Environment), clique em criar .
  7. Para executar o exemplo, clique com o botão direito do rato OutputCacheDuration.aspx no Solution Explorer e, em seguida, clique em View in browser .
  8. Depois da página aparece no browser, tome nota do tempo que aparece na etiqueta.
  9. Actualize a página no browser. Repare que a hora é o mesmo como estava anteriormente. Se actualizar a página depois de expira a definição da duração de 20 segundos, é apresentada uma versão recentemente em cache da página.

    Nota : Se estiver a visualizar a página num browser externo, pode premir a tecla F5 para actualizar a página. Se a página estiver a visualizar no browser Visual Studio .NET IDE interno, pode com o botão direito do rato na página e, em seguida, clique em ' Actualizar ', para actualizar a página.

Passos para criar o exemplo OutputCache VaryByParam @ na

Os seguintes passos demonstram como utilizar o atributo ' VaryByParam para colocação em cache para permitir diferentes versões em cache de uma página de saída de página a existir com base no valor de um dos respectivos valores de variáveis de QueryString .
  1. Crie uma página .aspx novo no Visual Studio .NET da seguinte forma:
    1. No Solution Explorer, clique com o botão direito do rato no nó de projecto, clique em Adicionar e, em seguida, clique em Adicionar formulário de Web .
    2. Na caixa de texto nome , escreva OutputCacheVaryByParam.aspx e, em seguida, clique em Abrir .
  2. Elimine o código predefinido que Visual Studio .NET adiciona a página por predefinição.
  3. Realce o código seguinte, clique com o botão direito do rato no código e, em seguida, clique em Copiar . No Visual Studio. NET, clique em Colar como HTML no menu Editar para colar o código para a página .aspx:
    <%@ OutputCache Duration="20" VaryByParam="testVal"%>
    <HTML>
       <HEAD>
          <script language="C#" runat="server">
       void Page_Load(object sender, EventArgs e) 
       {	
          Label1.Text = "Time: " + DateTime.Now.TimeOfDay.ToString();
       }
       </script>
       </HEAD>
       <body>
          <P>
             <STRONG>@ OutputCache VaryByParam Sample</STRONG>
          </P>
          <P>
             <hr>
          </P>
          <P>
             <br>
             <asp:Label id="Label1" runat="server"></asp:Label>
             <br>
             <hr>
             <a href=http://yourservername/OutputCacheDemo/OutputCacheVaryByParam.aspx?testVal=123">testVal(123)</a>
             <br>
             <a href=http://yourservername/OutputCacheDemo/OutputCacheVaryByParam.aspx?testVal=345">testVal(345)</a>
          </P>
       </body>
    </HTML>
    						
    Nota : tem de modificar as duas hiperligações no código anterior para reflectir o nome do servidor Web. Além disso, poderá notar que o atributo ' VaryByParam na está definido para variar, baseado no valor da variável QueryString testVal . Isto faz com que a página de saída devem ser colocados em cache para cada instância na qual o valor variável QueryString testVal é o mesmo.
  4. No menu ficheiro , clique em Guardar OutputCacheVaryByParam.aspx para guardar a página.
  5. No menu criar no IDE do, clique em criar .
  6. Para executar o exemplo, clique com o botão direito do rato OutputCacheVaryByParam.aspx no Solution Explorer e, em seguida, clique em View in browser .
  7. Depois da página aparece no browser, clique em testVal(123) . Isto faz com que o browser para navegar para a página, mas com QueryString variável testVal definido como "123" . Tome nota do tempo que aparece.
  8. Clique novamente em testVal(123) . Repare que a hora é o mesmo como estava anteriormente. A saída da página foi colocado em cache com base no valor variável testVal .
  9. Clique em testVal(345) . Repare que uma nova hora é apresentada na página.
  10. Clique novamente em testVal(345) . Repare que a saída da página anterior é colocada em cache e apresentada no browser.
  11. Clique em testVal(123) para voltar à primeira ocorrência. Repare que versões de cache de saída de página diferente apresentado, com base no valor variável QueryString fornecido.

Resolução de problemas

  • Quando utiliza VaryByParam na , estar ciente de que as alterações ao resultado caso a variável QueryString em entradas de cache adicionais.
  • Tenha em atenção que a duração é especificada em segundos.
  • Quando utilizar VaryByCustom e substitua o método HttpApplication.GetVaryByCustomString no ficheiro global.asax, a predefinição do browser é utilizada se não for encontrada nenhuma correspondência para a cadeia personalizada que é fornecida com o atributo.

Referências

Para obter mais informações na cache de saída de página, consulte os seguintes Web sites da Microsoft:
Tutorial de iniciação rápida ao colocação em cache de saída de página GotDotNet
Microsoft .NET framework Software Development Kit (SDK)
http://msdn2.microsoft.com/en-us/library/ms950382.aspx

Colocação em cache páginas ASP.NET
http://msdn2.microsoft.com/en-us/library/xsbfdd8c(vs.71).aspx

@ OutputCache
http://msdn2.microsoft.com/en-us/library/hdxfb6cy(vs.71).aspx

Propriedades

Artigo: 308375 - Última revisão: 31 de maio de 2007 - Revisão: 7.9
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbcaching kbhowtomaster kbio KB308375 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: 308375

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