Рендеринг клиента Ajax Toolkit - PullRequest
0 голосов
/ 17 ноября 2009

Я работаю над длинной, динамической формой (около 100 полей) и использую элементы инструментария, такие как CalendarBehaviors, HovermenuBehavior и т. Д. Для каждого поля.

Я никогда не работал с таким количеством элементов инструментария одновременно, и я наблюдаю значительный удар по производительности при рендеринге. Каждый экземпляр элемента управления toolkit отправляется клиенту в его собственных <SCRIPT></SCRIPT> тегах. Другими словами, 200 экземпляров он следующие:

<SCRIPT type="text/javascript"> 
Sys.Application.add_init(function() {    $create(AjaxControlToolkit.HoverMenuBehavior, {"OffsetX":20,"PopDelay":50,"dynamicServicePath":"/default.aspx","id":"hmePopupHelpPolicyNumber","popupElement":$get("lblHelpPolicyNumber")}, null, null, $get("imgHelpPolicyNumber"));});
</SCRIPT>
<SCRIPT type="text/javascript"> 
...snip
</SCRIPT>

Есть ли способ контролировать это и создать все элементы управления в одном блоке сценария?

Кроме того, кто-нибудь знает хорошую, подробную статью, в которой будет описано, как IE 7 анализирует и отображает html и javascript?

И я знаю, что большинство из вас рекомендует вместо этого JQuery. К сожалению, это не вариант в этом проекте.

Заранее спасибо и счастливого кодирования.

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

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

Edit: Ваш вопрос лежит в основе того, что многие считают основным недостатком использования веб-форм. Существует мало контроля над тем, как сервер отображает элементы управления и испускает их HTML. Без более «продвинутого» подхода, которого вы пытаетесь избежать, мне было бы сложно предложить что-либо, кроме разбивки формы на более мелкие части. Если это форма ввода данных, пользователь может быстрее вводить поля даты, чем заполнять форму щелчками мыши.

0 голосов
/ 17 ноября 2009

В соответствии с ответом @Achilles, я разбил бы форму на несколько страниц. Вы также можете попробовать одну страницу с несколькими вкладками.

Обновление: Еще одна вещь, которая может вам помочь, - ToolkitScriptManager . Он объединяет все внешние сценарии инструментария в один внешний сценарий. Я думаю, что он также объединяет все встроенные сценарии инструментария в один блок.

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