Как уменьшить размер страницы с помощью элементов управления devexpress

У меня сейчас проблема с оптимизацией страницы. Это страница, похожая на панель инструментов, она содержит и AspxNavBar (аналог элемента управления Accordion) с 3 группами, группы содержат 2 графика внутри панели обратного вызова, 4 сетки внутри панели обратного вызова (1 основной + 3 зависимости), фильтрующие элементы управления со многими выпадающими списками и Панель обратного вызова.

Общий вес страницы составляет ~4 мегабайта, и, кроме того, при первой загрузке страницы немедленно запускается обратный вызов для зависимых сеток (первая строка выбирается в основной сетке) и для панели с диаграммами (для изменения размера диаграммы).).

Есть ли способ уменьшить размер страницы, скажем, размер HTML или состояние обратного вызова / просмотра для элементов управления devexpress? Я искал и нашел советы по отключению кэша строк (что на самом деле не помогает), переключение текстовых полей в основной режим (у меня нет текстовых полей) и т. Д. Я также отключил viewstate для всех сеток и избавился от 2 панели обратного вызова, но это также не привело к значительному уменьшению размера страницы ( ~ 1-2 %).

1 ответ

Решение

Мне удалось уменьшить размер страницы с 4,5 МБ до 575 КБ, используя следующее:


  1. Я отключил ViewState со всей страницы и всех внутренних пользовательских элементов управления. Я включил его для отдельных элементов управления там, где это было необходимо (на самом деле у меня вообще не было состояния просмотра в самом конце).
  2. Я отключил состояние обратного вызова для некоторых элементов управления, где это было возможно, так как мне не нужна никакая информация о странице при обратном вызове, кроме тех, которые я явно передаю в качестве параметра обратного вызова.
  3. Я немного упростил макет. (Избавился от еще 2 панелей обратного вызова на фильтрующем элементе управления - это была панель с 2 комбинированными ячейками внутри. Теперь я делаю 2 обратных вызова для каждого комбинированного окна вместо 1 обратного вызова панели. Обратные вызовы комбинированного окна работают быстрее и эффективнее, поскольку они не возвращайте макет страницы как HTML). Кроме того, я изменил метки на интервалы, кнопки для входов и т. Д. И я избавился от некоторых вложенных тегов.
  4. Используемый RenderMode='Lightweight' за AspxNavBar (фактически, это только уменьшило размер страницы на ~20 КБ)
  5. Улучшен код архитектуры, переработан javascript, уменьшено количество обратных вызовов и обратных вызовов событий (теперь фильтр! Применяется обратный вызов) и т. Д.

Вот и все =) Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам