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