@sait4seo

Почему правильнее, чтобы Ajax возвращал JSON, а не HTML?

Хочу услышать ваши аргументы, кроме того, что исходные данные в чистом JSON меньше, а соответственно быстрее передадутся.
  • Вопрос задан
  • 289 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
тут все зависит от контекста.

С точки зрения клиент-серверной архитектуры это правильно, так как позволяет нам полностью отделить клиент и сервер. Клиент ничего не будет знать о реализации сервера, сервер ничего не знает о клиенте. Для SPA само то.

С токи зрения классических web-сайтов, где все сначала рэндрится на сервере, есть два варианта:
- если данные с сервера нам нужны что бы обновить маленькую штуку какую, которая уж больно зависит от текущего состояния страницы, то есть это часть логики представления на клиенте, то лучше json а на клиенте уже сделать что нужно. Так мы упростим логику на сервере.
- Если мы просто должны что-то подгрузить и нам важна производительность на клиенте, то тогда имеет смысл отдавать отрендренный HTML. Шматок html грузится не сильно дольше шматка json, и в целом, за счет отсуствия рендринга на клиенте мы можем даже сэкономить. Так скажем twitter делал (а может до сих пор делает). Но опять же это усложняет поддержку сервера так что тут надо смотреть, усложняет ли, сильно ли и т.д.
Ответ написан
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Правильней? Нет такого определения применительно к ответу на ваш вопрос.
Всё зависит от того, как вы поступаете с данными на клиенте.
Например, вы проставляете значения в поля формы. Зачем вам html?
Например, вы просто вставляете код в информер. Зачем вам json?
Для некоторых задач и просто text/plain сойдёт. А некоторые сервисы обмениваются xml.
Ответ написан
Комментировать
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
ИМХО, больше возможностей, можно передать состояние, ошибки и прочую служебную информацию, и переложить логику на JS. Что нельзя сделать в html. Можно в json засунуть html, но в html дополнительную информацию засунуть это гемор.

В общем всё зависит от задачи, иногда проще html сразу гонять и вставлять куда нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы