ASP.NET AJAX против jQuery в ASP.NET MVC - PullRequest
33 голосов
/ 22 апреля 2009

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

Ответы [ 10 ]

33 голосов
/ 23 апреля 2009

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

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

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

18 голосов
/ 22 апреля 2009

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

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

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

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

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

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

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

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

9 голосов
/ 22 апреля 2009

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

5 голосов
/ 22 апреля 2009

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

2 голосов
/ 22 апреля 2009

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

1 голос
/ 30 апреля 2009

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

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

1 голос
/ 27 апреля 2009

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

1 голос
/ 22 апреля 2009

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

1 голос
/ 22 апреля 2009

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

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

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

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

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

1 голос
/ 22 апреля 2009

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

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