Простой способ AJAX WebControls - PullRequest
       51

Простой способ AJAX WebControls

16 голосов
/ 05 августа 2008

У меня есть веб-приложение, которое я пытаюсь оптимизировать. Некоторые элементы управления скрыты в диалоговом стиле DIVs. Поэтому я хотел бы, чтобы они загружались через AJAX только тогда, когда пользователь хочет их видеть. Это хорошо для элементов управления, которые в основном основаны на литералах (различные меню и виджеты), но когда у меня есть то, что я называю «грязными» элементами управления - те, которые записывают обширную информацию в ViewState, помещают тонны CSS или скриптов на страницу требуется много ссылок и т. д. - кажется, что невозможно переместить «из страницы», особенно если учесть, как ASP.NET будет реагировать на обратную передачу.

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

В своем воспаленном воображении я хочу сделать это:

AJAXifier.AJAXify(ctlEditForm);

К сожалению, я знаю, что это сон.

Насколько близко я могу действительно получить быструю и легкую AJAXification, не вызывая слишком большую нагрузку на сервер?

Ответы [ 3 ]

4 голосов
/ 05 августа 2008

Извлеките элемент управления RadAjax от Telerik - он позволяет вам избегать использования UpdatePanels и ограничивает объем информации, передаваемой взад и вперед между сервером и клиентом, путем объявления прямых связей между вызывающими элементами управления и элементами управления, которые должен быть "Ajaxified", когда вызывающие элементы управления отправляют постбэки.

2 голосов
/ 05 сентября 2008

Я рекомендую вам в эти выходные пойти в местный книжный магазин, выпить чашку кофе и найти jQuery в действии от Manning Press. Идите вперед и прочитайте первую главу этой 300-страничной книги в магазине, а затем купите ее, если она вас заинтересует.

Я думаю, вы будете удивлены тем, насколько просто jQuery позволяет вам выполнять то, что вы здесь описываете. От вызовов ajax к серверу в фоновом режиме до отображения и скрытия тегов div на основе действий посетителя. Количество кода, которое вы должны написать, очень мало.

Существует множество хороших библиотек JavaScript, мне нравится только одна из них, и начать ее действительно легко. Начните с добавления ссылки на текущий файл jQuery с тегом, а затем напишите несколько строк кода для взаимодействия с вашей страницей.

1 голос
/ 05 августа 2008

Шаг первый - сделать ваши "грязные" части автономными пользовательскими элементами управления

Шаг второй - вставить эти элементы управления на страницу потребления.

Шаг третий - обернуть каждый тег пользовательского элемента управления в свой собственный Asp: UpdatePanel

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

Ваш пробег может отличаться.

...