Аякс:Определение против реализации?(XML, JSON или другое)

StackOverflow https://stackoverflow.com/questions/549316

  •  23-08-2019
  •  | 
  •  

Вопрос

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

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

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

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

Решение

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

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

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

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

  • XML можно проверить, хотя у json нет валидатора
  • Нет пространств имен в json
  • XML расширяем, в отличие от json.
  • Json обычно считается небезопасным

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мой выбор — JSON.

Потому что:

  • это намного быстрее.Вам нужно просто оценить код JSON из ответа вместо анализа XML.
  • для этого требуется гораздо меньше кода.eval() меньше, чем код синтаксического анализатора XML.
  • меньше трафика (объема данных для передачи) между клиентом и сервером, что приводит к более быстрой обработке
  • это более читабельно
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top