Compartilhar via


Texto writer móveis práticas recomendadas de renderização

Durante a fase de renderização, todos os adaptadores de dispositivo móvel ASP.NET gravar sua saída usando uma classe que herda a partir de MobileTextWriter classe base. A classe real do gravador texto pode ser específico para o dispositivo de destino; o adaptador de página instancia e retorna um escritor apropriado.Por exemplo, para um dispositivo que requer a marcação cHTML, a ChtmlPageAdapter Retorna um ChtmlMobileTextWriter objeto de seu CreateTextWriter método.

The MobileTextWriter classe define um conjunto de propriedades e métodos comuns de adaptadores. Você pode definir adicionais auxiliar membros de um adaptador de controle que são específicos para a classe de gravador para o adaptador.Métodos do HtmlTextWriter classe, base, sistema autônomo Write, WriteLine, e WriteBeginTag, estão disponível porque o MobileTextWriter classe herda a partir do HtmlTextWriter classe base.

Método Render tipo forte

Um adaptador normalmente precisa de um Texto writer de uma classe específica.Por exemplo, a WmlPageAdapter precisa usar um WmlMobileTextWriter objeto. The Render método para o IControlAdapter interface inclui um parâmetro de tipo HtmlTextWriter. Portanto, o adaptador ou deve substituir o Render método para disponibilizar a classe de Texto writer desejado, ou converter o gravador para a classe necessária.

O exemplo a seguir demonstra como substituir o Render método em um novo adaptador no adaptador de Extensible HTML conjunto para um personalizado CarControl classe. O nome deste adaptador personalizado é XhtmlCarControlAdapter, que segue estabelecer convenções de nomenclatura para novos adaptadores.

// Specialized XhtmlCarControlAdapter Render method
public void Render(XhtmlMobileTextWriter writer)
{
    ... [rendering code]
}
// Generic XhtmlCarControlAdapter Render method
public override void Render(HtmlTextWriter writer)
{
    Render((XhtmlMobileTextWriter)writer);
}

Inicial e final de uma resposta

Antes de gravar uma resposta, um adaptador de página deve telefonar certos métodos no seu Render método. Uma sequência de ações para um adaptador de página típica é:

  1. telefonar the BeginResponse método para o gravador.

  2. telefonar the BeginFile método de escritor, passando o URL da página e o tipo de conteúdo desejado (tipo MIME) de dados. Por exemplo, um adaptador de página HTML passariam text/html sistema autônomo o tipo de conteúdo.

  3. Processa a página (geralmente o formulário ativo).

  4. telefonar the EndFile método para o gravador.

  5. telefonar the EndResponse método para o gravador.

The following code example illustrates a simple Render methodfor an HTML page adapter.

public override void Render(MobileTextWriter writer)
{
    writer.BeginResponse();
    writer.BeginFile(Page.Request.Url.ToString(), "text/html");
    Page.ActiveForm.RenderControl(writer);
    writer.EndFile();
    writer.EndResponse();
}

Codificação de saída

The MobileTextWriter classe fornece auxiliar métodos para codificar o renderização. Codificação depende do dispositivo de destino.Por exemplo, os dispositivos baseados em WML exigem cifrões ($) a ser codificado.Métodos auxiliares são:

  • Para gravar texto codificado para um dispositivo de destino, o adaptador pode chamar o WriteEncodedText método r gravar.

  • Para gravar um URL (incluindo parâmetros) para um dispositivo de destino, o adaptador pode chamar o WriteEncodedUrl método r gravar.

  • Para escrever um argumento de URL (a parte do URL que segue o símbolo de consulta [?] da seqüência do agente do usuário) para um dispositivo de destino, o adaptador pode chamar o WriteEncodedUrlParameter método para o gravador.

Cache de saída

Páginas da Web do ASP.NET incluem suporte para cache de saída da página.Uma página pode ser armazenado em cache por meio de um @ OutputCache diretiva.

Em páginas da Web móveis, a saída em cache deve ser definida como variam de acordo com o dispositivo de destino.Por exemplo, se um dispositivo executando o Microsoft Internet Explorer para o Pocket PC solicita uma página, a saída resultante deve ser armazenada em cache e retornada somente para outros dispositivos executando o Internet Explorer para o Pocket PC.

Por padrão, a cadeia de caracteres do agente do usuário HTTP controla a variação das páginas de Web móveis em cache.No entanto, a saída de outros dispositivos pode ser afetada pelas propriedades adicionais.Por exemplo, um dispositivo com uma seqüência de caracteres de agente único usuário pode ter várias configurações de dimensionar de tela, cada um deles pode ter uma saída diferente.Para permitir essas variações, o adaptador de página pode substituir o CacheVaryByHeaders propriedade.

ASP.NET Web user controls also support an @ OutputCache directive that allows their output to be individually cached.Isso é chamado de cache parcial.No entanto, controles de usuário em páginas da Web móveis não oferecem suporte a essa diretiva.Páginas da Web móvel não têm suporte para cache parcial, como a saída de um controle de usuário pode ser diferente dependendo do Sumário do restante da página.

Consulte também

Conceitos

Controle e interação de adaptador

Outros recursos

Adicionando adaptadores de dispositivo novo e suporte de dispositivo