Лучше ли генерировать html для функции ajax в обработчике JS или в функции ajax PHP? - PullRequest
3 голосов
/ 14 октября 2010

Я разрабатываю несколько интерфейсов для продукта, и мы хотим использовать jQuery и PHP. Контент, который нужно сгенерировать, представляет собой список флажков (10-100), которые будет изменять пользователь (удаляя несколько одновременно и изменяя записи). Я решил попробовать что-то новое и спросить StackOverflow (читай: вы), что предпочтительнее: сгенерировать html в вызове php и вернуть или вернуть JSON-данные, которые jQuery может использовать, и сгенерировать флажки html, используя.

Я ценю обратную связь! Пока что я предпочитаю метод, позволяющий PHP генерировать html, потому что он знает больше о данных во время модификации (он взаимодействует с базой данных и может достаточно легко создать html без необходимости передавать идентификаторы, имена и т. Д. В JSON) .

Спасибо!

[Редактировать] Пропускная способность не является ограничением. Это внутреннее приложение для внутренней сети. Информация, которая должна быть напечатана пользователю, не потребует модификации dom после факта (за пределами флажков, но она встроена в браузер ...), хотя некоторые хорошие моменты были сделаны в отношении объема данных, которые передаются обратно:

прохождение обратно

Ярлык

против. { «Метка»: «Уникальный_ID» }

очевидно много избыточности.

Ответы [ 3 ]

4 голосов
/ 14 октября 2010

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

Гибкость возврата - HTML

Одним из преимуществ передачи HTML является то, что вы можете вернуть что угодно , если запрос вызывает ошибку или может генерировать разные типы данных, вы просто возвращаете другой HTML. Если вы возвращаете JSON, скрипт синтаксического анализа должен иметь дело с этими альтернативными структурами (то есть обработкой ошибок и / или алгоритмами синтаксического анализа нескольких структур).

Локальная обработка - JSON

Если вы локализуете, сортируете или формируете данные с точки зрения пользователя, может быть проще вернуть JSON, а затем использовать клиентские сценарии для интерпретации. Например, когда пользователь = 2, сообщение «Вы» вместо «Майк» может быть хорошим прикосновением к персонализации. Вы можете сделать это на стороне сервера, но теперь сценарий должен учитывать это, поэтому один и тот же запрос должен возвращать разные данные в зависимости от контекста (опять же, это невозможно). Вы можете сделать свой код сервера более универсальным, используя для этого скрипты на стороне клиента.

Местное представление - JSON

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

0 голосов
/ 14 октября 2010

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

Если вашему серверу необходимо динамически генерировать вывод HTML для каждого пользователя, он выдержит несколько более высокую нагрузкучем если бы вы делегировали генерацию контента клиентскому JavaScript.Клиенты имеют в своем распоряжении огромные вычислительные мощности, поэтому не стесняйтесь, чтобы они коллективно взвалили на себя нагрузку, а не заставляли ваш сервер выполнять всю работу (которая может легко сложиться в зависимости от того, насколько загружен ваш сервер).Аналогично, создание разметки HTML на сервере приводит к значительно большей загрузке страницы для клиента.Разметка для сотен флажков может легко добавить килобайт к размеру страницы, в то время как сами данные - это все, что вы отправите, используя подход JSON - намного меньше.Конечно, большие загрузки страницы означают более длительное время загрузки для клиента.Мы, как веб-разработчики, часто забываем, что все еще есть довольно много людей, которые все еще имеют подключение к Интернету по телефонной линии.

По этим причинам я лично выбрал бы отправку данных через JSON и модификацию DOM через JavaScript.

Cheers, Josh

0 голосов
/ 14 октября 2010

Ответ: это зависит.Если вы собираетесь выполнять DOM-манипуляции с новыми данными, тогда вам в значительной степени придется добавлять элементы с помощью jQuery.Если таких манипуляций не требуется, вы можете просто распечатать их с помощью php и добавить BLOB-объект.

Я думаю, что последнее намного проще и проще, поэтому, если вам не нужно делать манипуляции с DOMна элементы, вы можете просто добавить HTML-блоб из php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...