ASP.NET TreeView производительность - PullRequest
2 голосов
/ 08 апреля 2009

Что было бы целесообразно сделать, чтобы максимизировать производительность при использовании TreeView?

Под максимизацией производительности я подразумеваю минимизацию количества поездок между клиентом на сервер, т.е. обратных передач.

Значит ли это, что большая часть моей бизнес-логики будет находиться в Javascript? Какой здесь будет компромисс?

Я говорю о серверном управлении ASP.net TreeView

Ответы [ 2 ]

1 голос
/ 12 апреля 2009

Во-первых, решите, куда вы хотите поместить свою логику программирования: для скорости лучше использовать какой-то другой элемент управления древовидной структуры (не использующий макет таблицы) и инфраструктуру javascript для обработки событий щелчка. Я рекомендую использовать простые старые файлы обработчика ashx для связи AJAX, они имеют меньше накладных расходов, чем aspx и методы вызывающей страницы. Вызовы и результаты AJAX должны содержать только данные в формате JSON или XML, но не HTML.

С другой стороны, инструмент RAD, такой как VS и TreeView control, предлагает быстрое создание веб-приложения, но, конечно, с некоторыми штрафами: вам нужно вернуться на сервер для обработки каждого события щелчка / выбора, что вызывает проблемы со всей страницей обработка жизненного цикла и огромный объем передачи данных для вызовов ajax (ViewState вместе с HTML передаются с сервера на клиент для каждого события ajax).

Но если вы хотите придерживаться TreeView, я рекомендую:
- Адаптер управления дружественным CSS: они значительно уменьшают размер сгенерированного html (в моем случае, с 100kb до 20kb html) и заменяют макет таблицы элементами ul / li
- Оберните TreeView внутри ASP.NET AJAX UpdatePanel, но только в виде дерева, и используйте условные обновления панели. Не бойтесь использовать несколько панелей обновления
- сохранить ViewState минимальным

0 голосов
/ 08 апреля 2009

накладные расходы на разработку - вам придется поддерживать свою бизнес-логику как в JavaScript, так и в коде.

Снижение производительности клиента также может быть проблемой, если скрипт большой.

...