Compartilhar via


Visão geral do controle servidor da Web Substitution

O controle Substitution permite que você crie áreas na página que podem ser atualizadas dinamicamente e integradas, em seguida, a uma página armazenada em cache.

Esse tópico contém:

  • Cenários

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Cenários

Use o controle Substitution para especificar uma seção em um página da Web com cache de saída onde você deseja exibir conteúdo dinâmico.O controle Substitution oferece uma solução simplificada para página com cache parcial para páginas em que a maioria do conteúdo é armazenado em cache.Você pode colocar em cache de saída a página inteira e em seguida, usar controles Substitution para especificar as partes da página que estão isentas do cache.Regiões em cache executam somente uma vez e são lidas a partir do cache até que a entrada de cache expire ou seja removida.Regiões dinâmicas executam sempre que a página é solicitada.Esse modelo de armazenamento em cache simplifica o código de páginas que são basicamente estáticas, porque você não tem que encapsular as seções em cache nos controles de usuário da Web.Por exemplo, esse modelo de armazenamento em cache é útil em um cenário no qual você possui uma página que contenha conteúdo estático, como artigos de notícias, e um controle AdRotator que exibe anúncios.Os textos de notícias não são alterados com frequência, o que significa que eles podem ser armazenadas em cache.No entanto, sempre que um usuário solicita a página, você deseja exibir um novo anúncio.O controle AdRotator oferece suporte direto à substituição pós-cache e processa um novo anúncio toda vez que a página envia de volta, independentemente se a página é armazenada em cache.

Voltar ao topo

Segundo plano

Quando uma página ASP.NET é armazenada, por padrão toda a saída de página é armazenada no cache.Na primeira solicitação, a página é executada e armazena sua saída.No solicitações subsequentes, a solicitação é atendida do cache e o código na página não é executado.

Em algumas circunstâncias, você pode querer armazenar no cache uma página ASP.NET, mas atualizar partes selecionadas da página em toda solicitação.Por exemplo, convém armazenar no cache a maioria da página mas ser capaz de atualizar dinamicamente informações de detecção de hora na página.

Você pode usar o controle Substitution para inserir o conteúdo dinâmico na página em cache.O controle Substitution não processa qualquer marcação.Em vez disso, você vincula o controle a um método na página ou a um controle de usuário pai.Você cria um método estático que retorna as informações que você deseja inserir na página.O método chamado pelo controle Substitution deve atender aos seguintes critérios:

  • Ele deve ser um método estático (compartilhado no Visual Basic).

  • Ele deve aceitar um parâmetro do tipo HttpContext.

  • Ela deve retornar um valor do tipo String.

Outros controles na página não estão acessíveis para o controle Substitution — ou seja, você não pode examinar ou alterar o valor de outros controles.Entretanto, o código não tem acesso ao contexto da página atual usando o parâmetro passado para ele.

Quando a página é executado, o controle Substitution chama o método e, em seguida, substitui o valor de retorno do método para o controle Substitution na página.

Voltar ao topo

Exemplos de código

O exemplo a seguir mostra como usar o controle Substitution para criar conteúdo atualizado dinamicamente em uma página armazenada em cache.Código na página do evento Load atualiza um controle Label com a hora atual.Como a duração do cache da página está definido como 60 segundos, o texto do controle Label não altera mesmo se a página for solicitada várias vezes durante o período de 60 segundos.Um controle Substitution na página chama o método estático GetTime, que retorna a hora atual como uma sequência de caracteres.Toda vez que a página é atualizada, o valor representado pelo controle Substitution é atualizado.

<%@ Page Language="VB" %>
<%@ OutputCache Duration=60 VaryByParam="None" %>

<script >
    Sub Page_Load()
        Label1.Text = DateTime.Now.ToString()
    End Sub

    Public Shared Function GetTime(ByVal context As HttpContext) _
            As String
        Return DateTime.Now.ToString()
    End Function
</script>

<html>
<head ></head>
<body>
    <form id="form1" >
    <div>
    <p>
    <asp:Label  ID="Label1" />
    </p>
    <p>
    <asp:Substitution  
        ID="Substitution1" 
        MethodName="GetTime" />
    </p>
    <p>
    <asp:Button  ID="Button1" Text="Submit"/>
    </p>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ OutputCache Duration=60 VaryByParam="None" %>

<script >
    void Page_Load()
    {
        Label1.Text = DateTime.Now.ToString();
    }
    
    public static String GetTime(HttpContext context)
    {
      return DateTime.Now.ToString();
    }
</script>
<html>
<head ></head>
<body>
    <form id="form1" >
    <div>
    <p>
    <asp:Label  ID="Label1" />
    </p>
    <p>
    <asp:Substitution  
        ID="Substitution1" 
        MethodName="GetTime" />
    </p>
    <p>
    <asp:Button  ID="Button1" Text="Submit"/>
    </p>
    </div>
    </form>
</body>
</html>

Voltar ao topo

Referência de Classe

A tabela seguinte lista as classes que estão relacionadas ao controle Substitution.

Membro

Descrição

Substitution

A classe principal para o controle.

Voltar ao topo

Consulte também

Conceitos

Atualizar dinamicamente porções de uma página em cache