Чем UpdatePanel отличается от «традиционного» AJAX? - PullRequest
3 голосов
/ 31 августа 2009

мой друг упомянул мне, что, поскольку я использовал только панели обновления на своем сайте asp.net, я действительно не использовал прямую функциональность AJAX. о чем он говорит?

Ответы [ 10 ]

8 голосов
/ 31 августа 2009

Строгий AJAX означает использование асинхронного Javascript (с использованием объекта JS XmlHttpRequest) и XML (или JSON). Это означает, что нужно сделать очень легкий обратный вызов на ваш сервер или другую службу, получить результаты и каким-то образом обработать их на клиенте. Обе стороны (обработка запросов и ответов) требуют написания Javascript.

ASP.NET UpdatePanels делают это, но скрывают от вас все детали. Таким образом, их полезная нагрузка передачи данных «выглядит» как стандартная форма POST, а возвращаемые данные на самом деле представляют собой блок HTML, который буквально вставляется / заменяется на текущей странице.

Это делает вызовы «тяжелее» на сервере (поскольку весь жизненный цикл страницы должен быть завершен) и при использовании полосы пропускания. Более новые технологии, такие как ASP.NET MVC, не требуют / используют UpdatePanels и могут использовать легкие сервисы JSON для возврата данных, но вы должны написать Javascript, чтобы «иметь дело с ним» на стороне клиента (каким-либо образом связать его с пользовательским интерфейсом).

3 голосов
/ 31 августа 2009

Возможно, он говорит о том, что UpdatePanel получает намного больше данных, чем вы, вероятно, намереваетесь это сделать. Этот веб-сайт содержит несколько хороших примеров: Почему панели обновления ASP.NET AJAX опасны . Вот еще одна страница с того же сайта, которая дает несколько хороших указателей на Вы делаете эти 3 распространенных ошибки ASP.NET AJAX? .

3 голосов
/ 31 августа 2009

UpdatePanels используют ajax, но вы настолько отвлечены от того, как это действительно работает.

Когда вы используете UpdatePanels, ajax предоставляется "бесплатно" - и хотя это здорово для небольшого приложения, когда вы получаете большое приложение с множеством UpdatePanels, они падают вниз . И когда это произойдет, я рискну предположить, что большинство разработчиков asp.net не будут знать, с чего начать, потому что основная технология скрыта от них.

Сделайте своего приятеля счастливым и скажите ему, что вы начинаете с jQuery;)

2 голосов
/ 31 августа 2009

Строго говоря, я должен согласиться с тем, что UpdatePanel, по сути, является AJAX.

То, что большинство людей считают AJAX, гораздо более упорядочено, чем то, что делает UpdatePanel. Многие функции ajax на веб-странице включают в себя выполнение очень специфических действий - использование HTTP-запроса на стороне клиента для обработки некоторой информации на сервере, получения ответа и последующего обновления чего-либо на странице на основе ответа.

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

Библиотеки JavaScript, связанные с UpdatePanel, затем обновляют только те части страницы, которые обернуты на вашей панели (панелях) обновления.

JavaScript, связанный с UpdatePanel, использует http-запрос для публикации данных и получает Xml в ответ - это также асинхронно. Итак, это AJAX. Детали просто скрыты от вас. То, что вы не управляете запросом напрямую и не обрабатываете ответ, не означает, что это не AJAX. Однако UpdatePanel немного тяжелее трафика / полезной нагрузки, чем многие считают типичной реализацией AJAX.

0 голосов
/ 31 августа 2009

Это может звучать немного субъективно, но у меня есть некоторые действительно хорошие и некоторые действительно плохие события с UpdatePanel (и да, UpdatePanel real AJAX).

Хорошо: UpdatePanel упростил простую модернизацию функциональности AJAX в существующие веб-страницы без существенной перезаписи.

Плохо: UpdatePanel отправляет обратно все данные страницы. Я видел значительные проблемы с производительностью из-за этого. Если традиционная страница ASP.Net имеет данные о состоянии просмотра достаточного размера, то UpdatePanel не будет работать хорошо. Эти данные о состоянии просмотра, доступные на сервере, удобны, но не очень хорошо масштабируются по количеству пользователей, а не по большим наборам данных.

Как и многие другие инструменты, которыми располагает программист, UpdatePanel не является ни хорошим, ни плохим. Это зависит от использования.

0 голосов
/ 31 августа 2009

Он, вероятно, ссылается на клиентскую библиотеку для ASP.NET AJAX , которая дает вам прямой доступ к AJAX, который питает панели обновления.

Он не прав в том смысле, что панели обновления не полагаются на базовую технологию AJAX - они делают. Он может быть прав в том смысле, что с AJAX можно сделать гораздо больше, чем позволяют панели обновления.

0 голосов
/ 31 августа 2009

Может быть, он хочет, чтобы вы в полной мере использовали инструментарий AJAX Control - то есть реализовали dragPanels, HTMLEditor, Календарь, анимацию, аккордеон и т. Д. И т. Д.

Если это так, покажите ему жест среднего пальца добрым способом:)

0 голосов
/ 31 августа 2009

Обновление панелей - это AJAX Extensions, если вы об этом. ASP.NET так говорит!

0 голосов
/ 31 августа 2009

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

0 голосов
/ 31 августа 2009

Я не знаю.

Используя панели обновления, .net ajax под капотом запрашивает контент для этой страницы и помещает его в панель. Это довольно классическая реализация «ajax».

Возможно, он имеет в виду публикацию данных с использованием вызовов ajax, которые также охватывает панель ajax, но не так, как вы можете сделать это с помощью jQuery.

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