Постоянно обновлять страницу ASP.NET с помощью AJAX

У меня есть страница ASP.NET, которая взаимодействует с бизнес-классом. Я хочу постоянно обновлять элементы управления на моей странице на основе введенных пользователем значений, например. обновить итоги. Вычисления встроены в бизнес-логику, но они достаточно просты, чтобы их можно было воспроизвести в другом месте. Я придумал три способа сделать это:

  1. Динамически обновлять страницу с помощью JavaScript. Я не хочу этого делать, потому что не хочу рисковать математическими проблемами с плавающей запятой, когда значения на странице не соответствуют значениям, рассчитанным бизнес-классом (эти свойства являются десятичными).
  2. Очистите вычисляемые поля при изменениях и заставьте пользователя нажать кнопку перерасчета. Это плохой пользовательский опыт, а подключение JavaScript к элементам управления ASP.NET утомительно.
  3. Используйте AJAX UpdatePanel, установите элементы управления вводом данных для автоматической отправки и обработайте событие «изменено» для элемента управления, например. TextChanged для текстового поля.

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

Мой вопрос: это хорошая идея и/или обычная практика? Есть ли лучшие способы сделать это?

Я не работал с ASP.NET несколько лет и у меня есть предубеждение против автопостбэка[1]. Я посмотрел на размер запроса, и в настоящее время он незначителен - 1,5 КБ. Сайт будет редко использоваться, но у нас может быть небольшое количество пользователей с коммутируемым подключением.

  1. И ASP.NET в целом, но времена тяжелые.

person Jamie Ide    schedule 01.04.2009    source источник


Ответы (2)


Вы правы, думая, что третий вариант лучше. Для этого и создан AJAX. Действуй.

person Justin Niessner    schedule 01.04.2009

Лично я считаю UpdatePanel слишком тяжелым. Вы можете использовать jQuery вместе с функцией веб-службы ASP.NET, которая выводит JSON.

person mmx    schedule 01.04.2009
comment
прямой ashx с jayrock, asp.net mvc с jsonresult и служба wcf — все это достойные варианты в этой строке. - person Tracker1; 01.04.2009
comment
Это хорошие ответы, но у меня нет времени изучать несколько новых технологий для этого проекта. - person Jamie Ide; 02.04.2009