por Cesar Cassiano Schimanco

ASP.NET - Mover ViewState para o final da página

Como o ViewState é carregado no Head da página, ele pode tornar o carregamento do conteúdo mais lento. Da mesma forma como se faz com os arquivos JavaScript, vamos mover o ViewState para o final da página. Teoricamente os buscadores como Google, Bing e Yahoo só prestam atenção à primeira parte do código HTML, então, teoricamente, isto traria uma ganho de SEO também.

Este é um código que deve ser colocado na MasterPage ou em cada uma das páginas. Se você não tem MasterPage a dica é estender a página.

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
    System.IO.StringWriter sw = new System.IO.StringWriter();
    HtmlTextWriter HtmlWriter = new HtmlTextWriter(sw);
    base.Render(HtmlWriter);
    String html = sw.ToString();
    int StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\"");

    if (StartPoint != -1)
    {
        int EndPoint = html.IndexOf("/>", StartPoint) + 2;
        String viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);
        html = html.Remove(StartPoint, EndPoint - StartPoint);
        int FormEndStart = html.IndexOf("</form>") - 1;
        if (FormEndStart != -1)
            html = html.Insert(FormEndStart, viewstateInput);
    }
    writer.Write(html);
}

 

Este artigo foi baseado no arigo em inglês do Scott Hanselman, que pode ser acessado no link abaixo.

http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx

 

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...