Плюсы и минусы MS Ajax против jQuery в приложении ASP.NET MVC? - PullRequest
17 голосов
/ 31 января 2009

Теперь, когда RC1 вышел, мне нужно раз и навсегда решить, использовать ли библиотеки MS Ajax или просто jQuery для запросов AJAX. Приложение является новым приложением. По сути, я сам решу, получу ли я какую-либо значительную выгоду от библиотек Microsoft, которую я бы не получил от jQuery. У меня уже есть загрузка jQuery, и меня больше всего беспокоит дополнительная нагрузка на размер файла.

Насколько я знаю, на самом деле единственное преимущество в том, что есть такие помощники, как Ajax.BeginForm, но, возможно, они в какой-то момент будут работать с jQuery? Мне также сказал сегодня мой друг из государственного служащего, что в библиотеке MS Ajax есть много ошибок - что касается меня.

С Microsoft теперь официально подружился с jQuery Я бы не стал слишком беспокоиться о том, что они что-то сделают в будущем, чтобы оставить jQuery в пыли, улучшив свои собственные библиотеки.

Я действительно не очень много знаю о том, что на самом деле делает для меня MS Ajax. Есть определенные плюсы и минусы. Или это просто раздувание на 90% для поддержки «панели обновления»?

Мне также очень интересно, что книга ASP.NET MVC в действии просто пропускает библиотеки MS Ajax и сразу переходит в jQuery:

В этой главе читатель изучить, как техника AJAX применяется к ASP.NET MVC в более бесшовные, чем с веб-формами. Читатель увидит, как использовать все более популярный, легкий библиотека javascript с именем jQuery.

(из бесплатный образец глава по AJAX)

Очень хотел бы услышать от кого-либо об их опыте работы с обоими, особенно по следующим дополнительным вопросам:

  • Легко ли конвертировать код между двумя библиотеками - при условии относительно простых требований ajax?
  • значительно лучше или быстрее отлаживается в любой библиотеке
  • Кто-нибудь знает, как развивается ASP.NET 4.0, и есть ли какие-либо объявленные планы для библиотеки AJAX, которые могут быть полезны для MVC?
  • Что в двух словах может сделать MS AJAX для приложения MVC, помимо отправки запросов и закрепления ответа в DIV?
  • как мне сделать эквивалент Ajax.BeginForm(...) и использовать jQuery?
  • В чем заключалась ваша сделка, так или иначе?
  • что большинство людей там используют?

Ответы [ 5 ]

17 голосов
/ 31 января 2009

Лично я бы придерживался JQuery. MS AJAX довольно тяжелый по размеру, и вы можете сделать так много с JQuery. Что касается того, легко ли конвертировать код, то это зависит от того, какую часть MS AJAX вы используете. Я не думаю, что есть действительно значительная разница в отладке от одного к другому. У вас будет более обширное сообщество пользователей JQuery, из которого можно извлекать ресурсы.

10 голосов
/ 31 января 2009

Вы можете (и я) использовать оба в зависимости от необходимости. Когда я хочу, чтобы конкретная форма была дружественной к JavaScript, и я генерирую контент на сервере, я буду использовать MS AJAX через AjaxHelper. Он собирает все, что мне нужно, на стороне клиента для работы с браузером без поддержки JavaScript. Мне нужно только обнаружить AJAX / non-AJAX в контроллере и вернуть частичное или полное представление в зависимости. Если мне нужно использовать AJAX как часть плагина (скажем, autocomplete), тогда я буду использовать jQuery. Дело в том, что я использую инструмент, который лучше всего подходит (проще всего реализовать) для меня. Конечно, большинство моих приложений работают в интрасети, поэтому я гораздо меньше обеспокоен размером загрузок.

5 голосов
/ 31 января 2009

Я также нашел объявление jQuery о MS, включающем библиотеку

Видимо:

Дополнительно Microsoft будет разработка дополнительных элементов управления или виджеты, чтобы запустить поверх JQuery, что будет легко развернут в вашем Приложения .NET. JQuery помощники будут также будет включен в серверной части часть разработки .NET (в дополнение к существующим помощникам) обеспечение дополнительных функций для существующие возможности ASP.NET AJAX.

Так что я думаю, вполне вероятно, что у них в конечном итоге появятся помощники jQuery, которые точно отражают помощников AJAX для MS.

Я думаю, что решение, которое я приму, состоит в том, чтобы использовать Html.BeginForm, а затем перехватить кнопку отправки для использования jQuery. Я не особенно беспокоюсь о людях без потери функциональности javascript, но это не намного сложнее, так что я тоже могу.

1 голос
/ 24 июня 2011

Код JQuery гораздо проще кодировать, чем Ajax, но все проблемы с накладными расходами можно устранить, добавив больше памяти, а не путем кодирования потоковой линии. Аякс просто не имеет никакого смысла для меня, хотя я только начинающий в этом. После работы с чрезмерно загадочным синтаксисом Ajax, jQuery похож на глоток свежего воздуха.

0 голосов
/ 17 февраля 2012

Ну, есть одна вещь, которую я нашел с MS Ajax Framework, которую нельзя сделать элегантно с помощью jQuery. Пользовательские элементы управления сборкой MS Ajax очень объектно-ориентированы. Это не может быть легко сделано с помощью jQuery. Например, предположим, что вы создаете пользовательский элемент управления «адрес», который будет иметь адрес1, адрес2, город, штат, почтовый индекс и страну. Вы можете создать этот элемент управления с помощью jQuery и Ajax, но преимущество, которое предоставляет библиотека Ajax, заключается в том, что она разделит элемент управления адресом. Вы можете определить функцию "reset ()" для этого элемента управления, которая будет сбрасывать содержимое элемента управления адресом. Допустим, вы хотите, чтобы "reset ()" установил address1, address2, City для пустой строки, а State для "AL" и Country для USA. Вы определяете код для управления Ajax в файле (.js), и эта функция будет связана с вашим управлением адресами. То же самое невозможно с jQuery. Любая определяемая вами функция будет глобальной по объему, и нет простого способа связать эту функцию с управлением адресом. Вы можете очень хорошо вызвать функцию «сброс» в элементе управления текстового поля в форме !!!

Так что если вы хотите создать чисто объектно-ориентированные пользовательские элементы управления, то, я думаю, лучшим выбором будет использование MS Ajax Framework.

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