Возвращаемые значения XmlHttpRequest

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

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

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

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

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

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

22.08.2008 09:47:15
5 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

2
23.05.2017 12:24:47

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

0
22.08.2008 09:53:46

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

0
24.01.2013 10:06:40

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

2
22.08.2008 10:03:43

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

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

0
22.08.2008 14:51:23