Ajax: определение против реализации? (XML против JSON против другого) - PullRequest
4 голосов
/ 14 февраля 2009

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

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

Спасибо всем!

Ответы [ 10 ]

5 голосов
/ 04 ноября 2012

Какой из них лучше использовать, зависит от конкретного приложения / требования. На стороне браузера JSON - лучший выбор, в то время как на стороне сервера файлы XML - лучший выбор. Используйте правильный инструмент для правильной работы. JSON больше ориентирован на данные, а XML больше на документ. JSON изначально поддерживается кодом Javascript браузеров.

Для более подробной информации об этом посте, пожалуйста, обратитесь к ссылке, в которой есть более приятное сравнение каждого с примерами http://codebucket.co.in/which-one-is-better-xml-or-json/

5 голосов
/ 14 февраля 2009

Мы обычно предпочитаем xml, потому что он имеет некоторые преимущества перед JSON, такие как:

  • Xml может быть проверен, в то время как у json нет валидатора
  • В json нет пространств имен
  • XML расширяемый в отличие от json
  • Json обычно считается небезопасным

С другой стороны, у самого json есть свои преимущества:

  • Json проще
  • Обрабатывать на стороне клиента проще
  • Отладка может быть проще, когда что-то идет не так

В конце концов, это зависит от того, что вы пытаетесь разработать для ориентированных на данные вещей, которые я предпочитаю JSON.

3 голосов
/ 14 февраля 2009

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

Вы можете найти подробное сравнение преимуществ и недостатков JSON и XML для JSON или XML, какой формат выбрать? и Ответ AJAX: XML, HTML или JSON?

2 голосов
/ 14 февраля 2009

Я предпочитаю использовать JSON, когда это возможно:

  1. Он уже поставляется как объект Javascript, поэтому все, что вам нужно сделать, это вызвать для него вызов eval (), чтобы получить все его данные.
  2. JSON - это Javascript, поэтому он быстрее работает с людьми, которые уже знают JS, но не разбираются в тонкостях XML.
  3. В браузере вам не нужно проходить через процедуру анализа XML-объекта. (Вам также не нужно создавать его на сервере, хотя вы все равно должны создавать JSON.)
  4. Это более компактный способ передачи данных.
1 голос
/ 18 апреля 2009

Теоретически XML был бы быстро хорош из-за проверки, а что нет. На практике вы не можете проверить на стороне клиента приемлемые DTD или схемы (или в большинстве случаев вообще). Попробуй, увидишь.

XML также страдает от многословности и потребления на стороне клиента. Если вы не планируете использовать XSLT или что-то еще и напрямую использовать полученный пакет, вам придется разбивать данные с помощью DOM, как сделано.

Наконец, XML не может быть разумно рассмотрен, пока он не будет завершен (по крайней мере, на стороне клиента), поэтому вы не сможете выполнить частичную проверку. Хотя, если быть честным, у JSON также будут проблемы в зависимости от его структуры.

Учитывая среду потребления (в основном JavaScript), JSON имеет очевидные преимущества. Широко обсуждается этот выбор, а также другие вещи, такие как YAML, CSV, данные, закодированные в base64, фрагменты HTML и т. Д. В главе 4 Ajax: Полная справка (http://ajaxref.com), которая относится только к типам данных. Примеры подтверждают опровергнуть простоту обработки, особенно в менее известных случаях. Если бы мне нужно было выбрать один JSON, это было бы честно, но для некоторых случаев использования небольших фрагментов HTML Ajax (так как это просто пощечина) - способ сделать это.

1 голос
/ 14 февраля 2009

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

Мы сделали то же самое, что и AJAX в приложении интрасети в IE, но вместо XMLHTTP использовали VBScript и Java-апплет. Мы использовали что-то похожее на JSON, но в синтаксисе VBScript.

1 голос
/ 14 февраля 2009

Я тяготею к JSON, где только возможно в эти дни. Это, конечно, кажется более легким и более «естественным» в сочетании с кодированием на стороне клиента.

Рекомендация по безопасности: никогда не проверяйте JSON вслепую, не выполнив проверку полученной строки, поскольку вы можете выполнять произвольный код, который кто-то "поместил" в строку JSON.

Дуглас Крокфорд написал хороший набор принципов безопасности при работе с JSON.

0 голосов
/ 15 февраля 2009

Мой выбор - JSON.

Потому что:

  • это намного быстрее. Вам нужно просто оценить код JSON из ответа, а не анализировать XML.
  • это требует гораздо меньше кода. eval () меньше кода парсера XML.
  • меньше трафика (объем данных для передачи) между клиентом и сервером, что в результате ускоряет обработку
  • это более читабельно
0 голосов
/ 14 февраля 2009

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

Возможно, нам следует начать называть его "AJAWX" (асинхронный JAvascript без Xml).

0 голосов
/ 14 февраля 2009

Вы также можете просто сгенерировать html и использовать этот вывод прямо в своем приложении. XML очень многословен, где JSON требует особого внимания при обработке из-за безопасности.

На самом деле «лучшей практики» не существует. Лично, если бы я выбрал между JSON и XML, я бы использовал JSON. Хотя у вас есть несколько интересных возможностей для запросов, если вы используете XML.

...