Возвращаемые значения XmlHttpRequest - PullRequest
2 голосов
/ 22 августа 2008

Я ищу (возможно) правильный способ возврата данных из XmlHttpRequest. Опции, которые я вижу:

  • Простой HTML . Пусть запрос отформатирует данные и вернет их в удобном для использования формате.
    Преимущество : легко использовать на странице вызова.
    Недостаток : Очень жесткий, застрявший с фиксированным расположением.

  • XML . Пусть запрос возвращает XML, отформатируйте его с помощью XSLT на странице вызова.
    Преимущество : запрашиваемая служба легко используется другими источниками.
    Недостаток : есть поддержка браузера для XSLT достаточно хорошо?

  • JSON . Пусть запрос вернет JSON, использует его с использованием javascript, соответствующим образом отобразит HTML.
    Advantage : проще «OO-ify» для JavaScript, выполняющего запрос
    Недостаток : Возможно, использовать его не так просто, как предыдущие два варианта.

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

При наборе этого я получил другое понимание. Было бы неплохо разрешить все три формата ответа на основе параметра, добавленного в запрос?

Ответы [ 5 ]

2 голосов
/ 22 августа 2008

Я бы согласился с Джоном Топли - это зависит от приложения. В quirksmode есть хорошая статья, в которой обсуждаются преимущества и недостатки каждого формата, который вы можете прочитать: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

2 голосов
/ 22 августа 2008

Если вы ищете быстрое решение, которое должно работать с большинством доступных сред, я бы выбрал JSON. Это легко начать и работает.

Если вы пытаетесь создать более крупное приложение, которое собираетесь расширять (с точки зрения размера или, возможно, вашего собственного API для сторонних расширений), я бы остановился на XML. Вы также можете написать прокси-сервер для предоставления информации в формате JSON или HTML, но наличие XML в качестве основного источника определенно стоит времени и усилий при создании приложения.

Как @ Джон Топли сказал: это зависит.

0 голосов
/ 22 августа 2008

Я думаю, что попытка использовать XmlHttpRequest будет огромной головной болью, если только вы не возражаете против того типа головной боли, что для правильного выполнения вы почти заново изобретаете колесо. С другой стороны, людям нравится изобретать колеса в свободное время, просто чтобы сказать: «Эй, я сделал это». Не я ...

Я бы получил фреймворк, такой как prototype или Extjs, который имеет множество функций загрузки данных, встроенных для XML и JSON, плюс вы получите более предсказуемые результаты, так как фреймворки имеют обработчики событий, чтобы убедиться, что ваш XmlHttpRequest успешно выполнен или не выполнен , Кроме того, вы получаете поддержку для всех браузеров.

0 голосов
/ 22 августа 2008

Другой формат ответа не должен быть трудным для производства. JSON работает лучше всего для меня, мне нравится хранить OO в js, и я не знаю, как правильно анализировать XML:)

0 голосов
/ 22 августа 2008

Я думаю, что этот вид зависит от уровня "ajaxyness", который будет иметь ваше приложение. Если ваш интерфейс - это «богатый клиент», например, gmail, я бы выбрал решение JSON, так как в любом случае вам пришлось бы решать проблему создания представления на стороне клиента. Если вы используете Ajax экономно, чтобы предоставлять пользователю простые сообщения, время от времени обновлять несколько полей и т. Д., Я бы выбрал вариант 1, поскольку большая часть вашей логики представления уже находится на сервере.

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