У меня есть веб-приложение, которое я пытаюсь оптимизировать. Некоторые элементы управления скрыты в диалоговом стиле DIVs
. Поэтому я хотел бы, чтобы они загружались через AJAX только тогда, когда пользователь хочет их видеть. Это хорошо для элементов управления, которые в основном основаны на литералах (различные меню и виджеты), но когда у меня есть то, что я называю «грязными» элементами управления - те, которые записывают обширную информацию ViewState
, помещают тонны CSS или скриптов на страницу, требуют много ссылок и т. д. - казалось бы, невозможно переместить «из страницы», особенно если учесть, как ASP.NET будет реагировать на обратную передачу.
Я думал о каком-то шаге, где я переопределяю Render, нахожу маркеры для битов, которые я хочу переместить, и помещаю туда заполнители AJAX, но не только нагрузка на сервер кажется чрезмерной, но и ощущается как полный взлом. Кроме того, ключевым элементом здесь являются диалоговые окна, которые содержат формы с проверочными элементами управления на них, и я не представляю, как бы я переместил элементы управления и их необходимые сценарии.
В моем воспаленном воображении я хочу сделать это:
AJAXifier.AJAXify(ctlEditForm);
К сожалению, я знаю, что это мечта.
Насколько я могу быстро и легко получить AJAXification без чрезмерной нагрузки на сервер?
Проверьте элемент управления RadAjax от Telerik - он позволяет вам избегать использования UpdatePanels и ограничивает объем информации, передаваемой взад и вперед между сервером и клиентом, путем объявления прямых связей между вызывающими элементами управления и элементами управления, которые должны быть «Ajaxified», когда вызывающие элементы управления отправить постбэки.
Шаг первый - сделать ваши "грязные" части автономными пользовательскими элементами управления.
Шаг второй - встроить эти элементы управления на страницу потребления.
Шаг третий - обернуть каждый пользовательский тег управления в свой собственный Asp: UpdatePanel
Шаг четвертый - убедиться, что ваш элемент управления получает необходимые данные, считывая их из свойств, которые проверяют состояние представления на наличие уже существующих значений. Я знаю, что это заставляет ваш код полагаться на ужасные глобальные переменные, но это быстрый способ сделать это.
Ваш пробег может варьироваться.
Я рекомендую вам в эти выходные пойти в местный книжный магазин, выпить чашку кофе и найти jQuery в действии от Manning Press. Идите вперед и прочитайте первую главу этой 300-страничной книги в магазине, а затем купите ее, если она откликнется на вас.
Я думаю, вы будете удивлены тем, насколько просто jQuery позволяет вам выполнять то, что вы здесь описываете. От вызовов ajax к серверу в фоновом режиме, до отображения и скрытия тегов div на основе действий посетителя. Количество кода, которое вы должны написать, очень мало.
Есть множество хороших библиотек JavaScript, это одна из тех, которые мне нравятся, и это действительно легко начать. Начните с добавления ссылки на текущий файл jQuery с тегом, а затем напишите несколько строк кода для взаимодействия с вашей страницей.