Подтвердить что ты не робот

Вы Ajax JSON или HTML?

Каков предпочтительный способ сделать AJAX.

Если это была страница поиска, написанная на PHP с использованием JQuery для AJAX

Как бы вы справились с ответом

a) Попросите ответ содержать все соответствующие html/styling

или

b) Отправьте чистый JSON и получите функцию javascript, создав html/styling вокруг переменных javascript.

Я вижу преимущества для обоих. "a", очевидно, проще, в то время как "b" более эффективен (хотя gzip, вероятно, сделает разницу незначительной).

4b9b3361

Ответ 1

Я бы сказал, что "a" - это вариант, который вы в основном хотите придерживаться.

Гораздо проще поддерживать последовательные серверные серверные шаблоны (их можно повторно использовать в сценариях, отличных от AJAX).

Клиентская сторона Templating не очень элегантна (если вы собираетесь это сделать, я предлагаю следующее: http://ejohn.org/blog/javascript-micro-templating/)

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

Ответ 2

Я бы пошел с html:

  • выполнение преобразования из json в html сделает клиента медленнее (и вы ничего не знаете о производительности пользовательского клиента)
  • делать это в json означает, что вам нужно дважды конвертировать (от вашей структуры данных сервера до json, затем от json до html)
  • вы, вероятно, делаете рендеринг на html уже на сервере, поэтому у вас есть инфраструктура
  • Разница в сетевом трафике будет небрежной.
  • вы можете использовать библиотеки, которые выполняют всю работу для вас (например, с помощью JQuery, ajax-вызов, который возвращает html, просто становится jQuery ('# div'). load (url)).

Ответ 3

Лично я в основном возвращаю фрагменты HTML из ajax-вызовов, , если мне нужно что-то делать с возвращенными данными программно. Например:

  • Функциональность автозаполнения. Верните массив данных JSON, используйте javascript для создания соответствующих элементов.
  • Все, что действительно не запрашивает данные, но фактически публикует его. Встраивание в редактирование приходит на ум. Обычно я возвращаю сообщение статуса в формате JSON.

Если говорить, очевидно, я считаю, что оба варианта действительны. Я уверен, что пуристы не согласятся, но иногда возвращение простого "HTML" достаточно хорошее.

Ответ 4

Важным вопросом, который вы должны задать себе здесь, является ваша цель. Вы

  • хотят иметь больше трафика по кабелю и меньше использования клиентского процессора.
  • хотят иметь больше клиентского процессора и меньше трафика по кабелю.

и в этом контексте возникает другой вопрос: сколько людей звонит на ваш сайт. Если у вас сотни тысяч посещений страниц в день, вы должны подумать, например, уменьшить проводной трафик.

В большинстве случаев вы не только хотите генерировать HTML-разметку, но также хотите отправить некоторые обычные данные клиенту, которые вы можете обрабатывать в своем ECMA-/Javascript. Поэтому JSON должен быть вашим первым выбором (если вам не нужно иметь дело с гигантскими блоками данных). JSON является легким и может быть проанализирован extremly быстро с помощью javascript.

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

Статическая страница - это то, что вы угадываете правильно, статично. Но это означает отсутствие использования процессора для клиента/браузера. Поэтому, если вам не нужно/хотите иметь "динамическое" поведение страницы, вы просто отлично со статической страницей.

Ответ 5

Я поехал бы с Json по умолчанию. Это легкий (низкий накладной), простой в использовании формат обмена данными. Вам просто нужен хороший Object-to-Json lib, чтобы сделать "b" легким.

Ответ 6

Подход JSON привлекателен из-за логического разделения данных и представления. Если когда-нибудь в будущем стиль (презентация) должен измениться, что неизбежно произойдет, тогда данные JSON не нужно будет менять, нет?