Please wait!
Please wait!

ALEXEYWORLD.COM

alexeyworld.com

Уменьшение размера asp.net страницы

Уменьшение размера asp.net страницы

Зачем нужно думать о размере страницы? Представьте, что ваша страница весит несколько мегабайт, но безумно красивая и насыщенная. Человек заходит за нужной информацией и начинает ждать полминуты, пока это все загрузится, чтобы получить то, что хотел. Надолго ли его хватит исследовать ресурс? Скорее всего очень скоро ему это надоест. Вот поэтому необходимо думать о размере страницы и стараться ее уменьшить.

Во-первых, хорошо бы все стили выносить в отдельный css файл и просто его подключать, в коде страницы. Таким же образом необходимо поступать с JavaScript функциями. Пишем их все в отдельном файле, а затем только подключаем. Что это даст? Это уменьшит размер загружаемой страницы, а css и js файлы будут кешироваться браузером. Тем самым достигаем желаемого результата. Что еще можно сделать?

При создании сайтов на ASP.NET получается огромный ViewState, который резко увеличивает вес. Его можно отключить, прописав в заголовке страницы EnableViewState="false". Если же для каких-то элементов он нам необходим, то можно вручную для этого элемента включить ViewState. Но в любом случае его выключение поможет сохранить приемлемый размер html разметки.

Помимо всего этого, в генерируемой разметке присутствует масса пробелов и переносов строк, которые не играют никакой роли в визуализации, а лишь позволяют удобно просматривать разметку, и тем самым увеличивая объем. Но если задуматься: оно нам надо? Есть возможность избавиться от этого мусора и еще на немного уменьшить страницу.

Для этого необходимо в коде страницы переопределить PreRender и добавить следующий код:

protected override void Render(HtmlTextWriter writer)
{ 
       StringWriter stringWriter = new StringWriter();
       HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); 
       base.Render(htmlWriter);
       string result = stringWriter.ToString();
       htmlWriter.Close();
       result = Regex.Replace(result, ">\\s+<", "><", RegexOptions.Compiled);
       result = Regex.Replace(result, "\\s+", " ", RegexOptions.Compiled);
       result = result.Replace("//<![CDATA[", "/*<![CDATA[*/");
       writer.Write(result);
}

Теперь пытаясь просмотреть разметку мы увидим сплошной html без красивой разметки, зато на немного уменьшим вес страницы.

опубликовано: 02.02.2011, 15:16 | просмотров: 6293 |