Как я могу минимизировать вес моих страниц ASP.NET? - PullRequest
5 голосов
/ 28 января 2009

Я в значительной степени полагаюсь на вложенные мастер-страницы на своем веб-портале, поэтому ASP.NET генерирует огромные теги ID для создаваемых им элементов управления, например: "Ctl00_ctl00_MainBody_ctl00_lblDescription"

для метки lblDescription, которую я создал.

Есть ли способ уменьшить этот беспорядок?

Любые другие методы (извините за общее), чтобы уменьшить вес страницы, кроме удаления состояния просмотра?

Ответы [ 12 ]

11 голосов
/ 28 января 2009
5 голосов
/ 28 января 2009

По возможности используйте элементы управления HTML. Элементы управления HTML. Они легче, так как не имеют серверных объектов, если вы не укажете атрибут runat="server".

2 голосов
/ 28 января 2009

Я не знаю, как удалить раздутый идентификатор клиента, но некоторые общие советы по уменьшению размера ваших страниц:

  • Сократите и объедините любые файлы .js / .css в один файл.
  • включает css вверху страницы и js внизу (на самом деле не будет меньше, но пользовательский интерфейс будет загружаться быстрее)
1 голос
/ 10 февраля 2009

Использование CSS Sprites может ускорить вашу страницу за счет уменьшения количества запросов. Вот несколько статей Я нашел.

1 голос
/ 10 февраля 2009

Особенно внутри ретрансляторов, ListViews и GridViews, назовите ваши элементы управления как-нибудь коротко.

Это должно быть очевидно по контексту (список продуктов)

Если в ретрансляторе есть только одна гиперссылка, назовите ее гл . Вам не нужно вызывать эти элементы управления HyperLinkProduct.

<asp:Repeater id="rptProducts" runat="server">
    <ItemTemplate>
       <asp:HyperLink id="hl" runat="server" NavigateUrl='<%# Eval("URL") %>'>
            <%# Eval("Name") %>
       </asp:HyperLink>
       <asp:Image id="img" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' />
    </ItemTemplate>
</asp:Repeater>

Это будет что-то вроде:

<a id="ctl00_rptProducts_ctrl0_hl" href="/products.aspx?id=5">
  Product Name
</a>
<img id="ctl00_rptProducts_ctrl0_img" src="images/5.png"/>

Умножьте эти имена идентификаторов на 100, и ваши идентификаторы начнут занимать намного больше места, если вы используете длинные описательные имена. Внутри повторителей короткие идентификаторы должны быть достаточно четкими, если ваш повторитель имеет правильное имя.

1 голос
/ 29 января 2009

Чтобы минимизировать вес ваших страниц ASP.NET, вы также можете переопределить свойство PageStatePersister (класса Page) с помощью SessionPageStatePersister. Смотрите пример здесь . Таким образом, Viewstate будет сохранено в объекте Session на стороне сервера, что уменьшит размер html-страницы на стороне клиента.

1 голос
/ 29 января 2009

У Террапина есть несколько замечательных предложений, но они довольно идеалистичны. Если вы ищете более подходящие решения для вашей текущей ситуации, проверьте адаптеры управления.

Адаптеры CSS-Friendly сделают большую работу для вас, чтобы преобразовать ваши элементы управления ASP.NET из больших некрасивых таблиц с длинными именами в более краткие div с более короткими именами.

Я использовал их в прошлом, и они действительно могут иметь огромное значение. Кроме этого, выключите viewstate на любом элементе управления, который не нуждается в этом. Соответствуйте правильному CSS / HTML, и это будет иметь еще одно существенное значение.

Удачи!

1 голос
/ 28 января 2009
  • Включить статическое / динамическое сжатие IIS
  • Использовать кэширование для элементов управления и страниц
  • Загрузка контента Ajax - это помогает, когда вы хотите видеть основной контент быстрее, чем контент с меньшим приоритетом
1 голос
/ 28 января 2009

В случае использования метки убедитесь, что вам действительно нужно использовать метку (которая генерирует текст в теге <span>. Вместо этого можно использовать Literal.

Установите EnableViewState="False" для элементов управления, которые не нужны (или на всю страницу / веб-сайт)

Если вы пытаетесь изменить скрытые идентификаторы, сгенерированные ASP.NET, вы мало что можете сделать там.

0 голосов
/ 28 января 2009

Выключение режима просмотра, как вы упоминаете, это хорошо. Также я заметил, что древовидный элемент управления ASP.NET генерирует очень большое количество HTML (если у вас есть достаточное количество узлов). В итоге я написал свой собственный элемент управления деревом, который генерирует 1/4 HTML-кода стандартного элемента управления деревом. Таким образом, вы можете искать такие элементы управления, которые особенно плохи, и написать свой собственный элемент управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...