ASP.NET AJAX против jQuery в ASP.NET MVC

33

Какой из них лучше использовать в ASP.NET MVC?

Теги:
asp.net-mvc

10 ответов

31
Лучший ответ

Лично я предпочитаю jQuery по следующим причинам: -

  • Сообщество плагинов гораздо более разнообразно и привлекает разработчиков из широкого спектра фоновых рисунков (а не только для MS-стека). Для MS-AJAX вы в значительной степени ограничены клиентским набором инструментов управления AJAX для ваших виджетов пользовательского интерфейса на данный момент.
  • Я нахожу, что jQuery API гораздо более применимы для обычных клиентов, чем те, которые предлагает MS AJAX
  • Учитывая отсутствие дыма и зеркал WebForms, происходящих в MVC, вам иногда необходим жесткий контроль над DOM, чтобы делать определенные вещи, механизм селектора CSS, предлагаемый jQuery, действительно помогает вам в этом.

С точки зрения того, что MS AJAX предлагает вам в MVC, он может многое сделать для вас с точки зрения предоставления вам быстрого доступа к формам и ссылкам AJAXify, но, насколько мне известно, добавляет стоимость javascript на 90 килобайт сделать это не стоит, когда эквивалентные вызовы в jQuery (например, $.get, $.post, $(element).load) относительно просты в использовании.

18

Лично, несмотря на поддержку HtmlHelper для ASP.NET Ajax, я нахожу jQuery ajax в сочетании с плагин форм JQuery, который будет самым приятным способ делать сообщения ajax формы в ASP.NET MVC.

например. с вызовом jquery на странице списка продуктов html с формой для каждого продукта, позволяющей добавлять элемент в корзину, одна строка кода jquery может "ajaxify" всех форм на странице

$(".productListItem form").ajaxForm({ target: '#extraInfoSection' });

в сочетании с простым свойством IsAjaxRequest в базовом классе контроллера, который проверяет заголовки:

Request.Headers["X-Requested-With"] == "XMLHttpRequest"

и некоторая логика в контроллере для возврата правильного типа ответа:

return IsAjaxRequest ? (ActionResult) View("BasketPartial", basket) : new RedirectBackToReferrerActionResult();

у вас есть форма, которая работает даже при выключенном javascript и не задействована ASP.NET Ajax.

  • 3
    Работает ли это с проверкой на стороне сервера?
9

Вместо рекомендации я предлагаю вам прочитать блог Dave Ward Encosia, в котором есть серия сообщений в MS Ajax/Update Panel против механизма jQuery post. Дэйв утверждает, что производительность jQuery значительно выше, чем сокращение 100K от передачи на сервер и с сервера.

  • 6
    Эти сообщения больше связаны с WebForms, а не с MVC. Сохранение в 100 КБ, упомянутое в этом посте, обычно является мусором, который идет вместе с UpdatePanel (ViewState the Delta и т. Д.). В MVC то, что происходит вдоль и поперек провода, должно быть примерно эквивалентным (отличается только абстракция над XmlHttpRequest).
  • 2
    У меня возникает ощущение, что я буду переходить на MVC, так как нахожу разочаровывающими веб-формы, потому что кажется, что для реализации продвинутых методов Ajax приходится прыгать через много обручей.
Показать ещё 1 комментарий
4

JQuery - это чисто клиентская библиотека. Asp.Net Ajax включает в себя как клиентскую, так и серверную функции. ИМХО, сравнение на самом деле не справедливо. Они могут дополнять друг друга планами Microsoft.

  • 2
    Я не согласен с Чарли, JQuery может выполнять обратные вызовы для функций на стороне сервера, очень похоже на то, как ASP.NET Ajax использует Javascript для того же. Обе они являются клиентскими средами: ASP.NET AJAX лучше инкапсулирует код обратной передачи, а JQuery дает вам гораздо больший контроль над ним.
2

Существует вариант ASP.NET AJAX для MVC - используется с AjaxHelper и расширениями. Это хорошо работает вместе с jQuery. У меня есть экземпляры, где я использую оба на одной странице; используя MVC AJAX для обновления DIV на основе нажатия кнопки и использования jQuery для получения данных JSON для другой операции на той же странице. Стандартные ASP.NET AJAX (UpdatePanels и т.д.) Должны использоваться в мире WebForms, а не в MVC.

1

Прежде всего, вы можете использовать либо, если вы говорите о Microsoft Ajax, вы имеете в виду только клиентскую библиотеку. Вы можете использовать клиентскую библиотеку MS Ajax и большинство расширителей инструментария без каких-либо элементов управления на стороне сервера. Я создал довольно большое приложение с использованием веб-форм и Microsoft Ajax, а затем преобразовал его в MVC/jquery. Я обнаружил, что я использую все меньше и меньше возможностей в библиотеке MS Ajax. Существует так много доступных с плагинами, что делает даже набор инструментов ajax устаревшим.

Если вы говорите о MS Ajax с помощью панелей обновлений и т.д., то я бы сказал "нет", вы не можете использовать их в MVC. На самом деле, не используйте их вообще! панели обновления имитируются ajax, страница по-прежнему проходит через ее жизненный цикл, почти побеждая цель использования ajax.

1

Еще одна альтернатива, которую вы, вероятно, можете посмотреть, - Ajax.NET, http://www.ajaxpro.info/. Я считаю это лучше, чем ASP.NET AJAX для WebForms. Он также работает под управлением MVC.

1

Я хотел бы упомянуть, что Microsoft поддерживает JQuery, и они будут поддерживать ее в следующих версиях Visual Studio. Для получения дополнительной информации посетите http://live.visitmix.com/. ASP.NET AJAX и jQuery не слишком много перекрываются, поэтому вы хотели бы использовать оба.

1

Прежде всего, было бы полезно принять во внимание, что ASP.NET MVC не поддерживает или, лучше, не имеет концепции обратной передачи.

  • asp.net ajax это на основе механизма обратной связи на стороне сервера, он предназначен для упрощения интеграции функций ajax в режиме на стороне сервера.
  • jQuery, поскольку другие фреймворки (например, Extjs) реализуют чистую клиентскую ajax

По-прежнему можно использовать элементы управления asp.net в asp.net mvc, asp.net ajax это один из них, но, как считалось, asp.net mvc сделал, чтобы разделить проблемы (представления) и быть REST как можно ближе, поэтому, имея в виду последнюю мысль:

  • Использование ASP.NET Web Forms ASP.NET AJAX это правильный выбор
  • Используя ASP.NET MVC, лучше попробовать пойти клиентом, поэтому jQuery (или другие) лучше

Извините за мой английский

1

Использовать ASP.NET AJAX с веб-формами и jQuery с помощью ASP.NET MVC

  • 0
    Какова мотивация этого? Кроме того, при запуске нового проекта, какой из двух вариантов вы бы выбрали: ASP.NET AJAX с веб-формами или jQuery с MVC? А почему бы не jQuery с веб-формами и методами страниц / веб-службами? Я занят, решая, стоит ли переходить на MVC, хотя это и не так хорошо известно - хотя я пришел из опыта Java Struts / JSF, так что парадигма MVC у меня на уме в любом случае.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню