Есть ли причина предпочесть jQuery. Ajax к asp.net UpdatePanel?

Если я разрабатываю asp. Сетевое приложение, могут там быть некоторые случаи, где я должен забыть о MS Ajax UpdatePanels и предпочесть jQuery. Ajax для обновления некоторой части моей страницы?

Спасибо

9
задан pencilCake 20 July 2010 в 12:24
поделиться

5 ответов

Да, на самом деле, вы должны почти всегда предпочесть использование собственной (или jQuery) функциональности ajax.

Существует много накладных расходов, связанных с MS Ajax UpdatePanel (она выполняет полный постбэк, а затем обновляет элемент(ы), которые изменились на странице), поэтому приятные возможности сайта с поддержкой AJAX - отзывчивость, непрерывность и т.д. - почти полностью теряются (IMHO). У вас очень мало контроля над тем, что на самом деле передается по кабелю, над тем, что возвращается, и над тем, как это обрабатывается после возвращения клиенту.

С jQuery Ajax, с другой стороны, вы получаете полный и мгновенный контроль, вы можете делать настолько легкие (или тяжелые) запросы, насколько пожелаете, и давайте посмотрим правде в глаза - API ничуть не сложнее в использовании, чем API UpdatePanel.

Учитывая это, все еще существуют сценарии, когда UpdatePanel подходит или даже лучше. Особенно в ASP.NET WebForms, может быть сложно вернуть только часть страницы таким образом, чтобы она плавно деградировала, если пользователь не может использовать javascript, а для быстрого стиля разработки "drag-and-drop", jQuery действительно не может конкурировать. (Нравится ли вам разработка "drag-and-drop" или нет - это совершенно другая дискуссия...)

.
10
ответ дан 4 December 2019 в 13:44
поделиться

Конечно, ИМХО вам стоит предпочесть jQuery стандартным панелям обновления ASP.Net. Причина (основная) - производительность, когда вы отправляете какие-то данные с помощью jQuery.ajax, вы отправляете только то, что нужно серверу, чтобы понять сообщение. Обычно это 1-2 параметра текста.

когда вы делаете тот же самый пост, используя панель обновления, вся страница отправляется на сервер, затем вся страница возвращается и область рендерится.

если вы используете jQuery, вы можете создать ashx страницу на сервере, у этой страницы нет загрузки страницы и жизненного цикла обычной веб-формы, и она также очень легкая.

2
ответ дан 4 December 2019 в 13:44
поделиться

Я бы сказал, что вам определенно следует отдать предпочтение jQuery AJAX перед ASP.NET AJAX UpdatePanel. Если вы посмотрите на сайт ASP.NET AJAX, там действительно нет упоминания об ASP.NET AJAX и/или UpdatePanel... но есть много упоминаний о jQuery. На самом деле, похоже, что Microsoft отдает предпочтение разработчикам ASP.NET, использующим jQuery в качестве клиентского JavaScript AJAX фреймворка, а не UpdatePanel и связанные с ней элементы управления ASP.NET AJAX.

Они все еще дают ссылки на AJAX Control Toolkit, но с таким количеством плагинов jQuery, зачем вам нужен Toolkit?

UpdatePanel медленнее и громоздче - выбирайте jQuery AJAX.

2
ответ дан 4 December 2019 в 13:44
поделиться

Как отмечали другие, MS-Ajax и UpdatePanels работают плохо - иногда до непригодности. Как отмечали другие, обратные вызовы ajax, которые должны быть маленькими и легкими, являются тяжелыми, потому что они также включают полный ViewState.

В дополнение к этим проблемам, я обнаружил еще несколько недостатков MS-Ajax:

  1. Созданный MS javascript содержит много накладных расходов. Они встроили множество проверок типов и переменных, с намерением сделать свой javascript более безопасным для типов, я полагаю. Эти накладные расходы значительно замедляют обработку на стороне браузера - особенно когда эти сгенерированные функции javascript вызываются многократно/рекурсивно (как в случае с некоторыми сторонними элементами управления).
  2. ASPX code-behind становится намного сложнее и труднее поддерживать, потому что один и тот же жизненный цикл страницы выполняется для начальной загрузки страницы, а также для каждого отдельного ajax callback. Как и любой сложный код, это может быть преодолено опытными разработчиками и хорошими комментариями к коду - но, тем не менее, это недостаток, который следует учитывать.

Последнее замечание: единственное преимущество MS-Ajax и UpdatePanels в том, что вы можете быть на 90% незнающим javascript и все же написать их. "Традиционный" ajax включает в себя гораздо больше javascript-кода, чем MS-Ajax.

0
ответ дан 4 December 2019 в 13:44
поделиться

Если вы знакомы со всей схемой обратной передачи ASP.Net, одно из преимуществ использования таких элементов управления состоит в том, что (большую часть времени) они защищают вас от побочных эффектов, таких как обратные передачи и тому подобное. Но в этом конкретном случае за это приходится платить: у вас есть полная обратная передача для каждого запроса AJAX (который будет включать состояние просмотра), что может снизить производительность по сравнению с прямым запросом AJAX, cf:

http: // geekswithblogs.net/dlussier/archive/2007/09/06/115188.aspx

Я также не уверен, хорошо ли он обрабатывает межсайтовые запросы (JSONP и тому подобное), так что это два предостережения, которые следует учитывать.

1
ответ дан 4 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: