Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

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

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

Нравиться @Джон Топли сказал:это зависит.

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top