2009-04-07 2 views
2

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

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

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

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

ответ

1

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

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

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

+0

На самом деле в соответствии с этим http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx UpdatePanel не совместим с TreeView – sarsnake

+0

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

+0

Нет, это нормально, если MS говорит, что они не поддерживают его внутри UpdatePanel, я не буду использовать его там. – sarsnake

0

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

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

+0

Я полагаю, что разделение входа Business from from Presentation невозможно тогда? – sarsnake

+0

у вас могут быть отдельные файлы javascript для обработки бизнес-логики, считают javascript как другой агент, состоящий из собственной иерархии PAC. Или, альтернативно, вы можете сгенерировать проверку javascript из кода позади. – FlyinFish

 Смежные вопросы

  • Нет связанных вопросов^_^