Что возвращать при выполнении запроса Ajax - PullRequest
2 голосов
/ 05 мая 2010

Когда мы возвращаем данные из вызова Ajax, лучше ли вернуть документ, содержащий HTML, для отображения на странице или вернуть данные XML / JSON, которые можно обработать?

Я знаю, что разные обстоятельства могут определять, что значит "лучше", но я действительно хочу знать, что будет более подходящим для разных обстоятельств.

Я работаю над фреймворком для большого приложения ASP .Net, используя jQuery Ajax (плагин форм). Моей первоначальной мыслью было вернуть данные в формате XML, а затем обработать соответствующим образом. Затем это увеличивает обработку, требуемую в Javascript, для заполнения страницы. Я пытаюсь сбалансировать гибкость, ясность и простоту.

Заранее спасибо за ваши знания и информацию.

Ответы [ 5 ]

2 голосов
/ 05 мая 2010

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

В общем, я бы пошел с JSON.

1 голос
/ 05 мая 2010

если ваш вызов AJAX предназначен для получения каких-либо данных, пусть сервер вернет ему JSON. Если это просто чтобы получить флаг, просто верните 1 или 0 или что-то еще. Если вы хотите вставить на страницу что-то, что может быть легче создано на сервере, попросите вызов вернуть HTML.

1 голос
/ 05 мая 2010

Зависит от ситуации.

1) Если вы хотите просто заполнить тег div серверным HTML-кодом (например, для новостного сайта CMS), перенесите HTML-код и поместите его в element.innerHTML. Это просто и эффективно.

2) Если у вас есть дополнительные требования к обработке данных (динамический интерфейс на стороне клиента, такой как сетка, таблица, форма и т. Д.), Используйте JSON или XML.

1 голос
/ 05 мая 2010

Столько, сколько «попытка угодить всем - это быстрый путь к посредственности», если бы не было варианта, чтобы обработчик на стороне сервера для вызова AJAX создавал XML, JSON или HTML в зависимости от значения переменной, называется, например, "формат"?

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

Например, для очень простого запроса вы можете быть счастливы, просто получив текстовый результат «true» или «false», поэтому вы добавляете «format = simple» в конец запроса. При запросе списка элементов, JSON может быть лучшим вариантом, так что идет "format = json".

Я предлагаю это, поскольку это, похоже, один из приемов, которые Google предлагает с некоторыми из своих API.

0 голосов
/ 05 мая 2010

Я думаю, это зависит от того, насколько узким является объем обновления, который вы пытаетесь сделать. Очевидно, что если область страницы, на которую влияет информация, которую вы получаете с сервера, является чем-то небольшим, парой элементов управления, которые необходимо обновить, лучше быть кратким (например, JSON) и выполнять обработку на стороне клиента.

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

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