Чем лучше генерировать HTML – PHP или JS?

Brazzford

Новичок
Здравствуйте, и с наступающим! У меня возник вопрос, на который я пока не могу найти однозначного ответа, а именно – если я использую AJAX, то где лучше генерировать HTML - на стороне сервера с помощью PHP или на стороне клиента с помощью JS? В первом варианте PHP будет, например, отдавать только JSON, а JS, на основе этого JSON будет уже отрисовывать HTML. Но с другой стороны в место JSON я могу передавать уже сгенерированный HTML.

Отрисовка с помощью JS мне кажется лучше тем, что это снижает нагрузку на сервер, так как генерацию HTML берёт на себя комп. клиента а не сервера. Но больше меня привлекает, то что это позволяет по-настоящему разделить клиент и сервер. То есть, на мой взгляд, так как, по сути, HTML и JS это дела клиентские, то лучше их смешивать вмести, нежели смешивать HTML и PHP. К тому же, если, например, ты занимаешься фронт-эндом, а напарник бэк-эндом, то сфера деятельности логически разделяется, так как напарник, занимающийся бэк-эндом не лезет в HTML, а ты не лезешь в PHP. Весь обмен данными, происходит с помощью JSON.
С другой стороны, хочется придерживаться MVC паттерна, но если генерировать HTML на стороне клиента, то, фактически, V перемещается на клиент, а на сервере остаётся только MC.

Вообщем, посоветуйте, пожалуйста, новичку как лучше организовать свой код. Как определить когда отрисовывать HTML с помощью JS а когда с помощью PHP?
 

depp

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

AmdY

Пью пиво
Команда форума
Brazzford, если ты не делаешь one page приложение на нормальном фреймворке вроде backbone или angular, то лучше генерировать html на сервере, нефик грузить зря клиент пользователя у которого может быть ie и не самый шустрый комп. Плюс seo, плюс удобство отладки, плюс отсутствие задержки при перерисовке...

>>Отрисовка с помощью JS мне кажется лучше тем, что это снижает нагрузку на сервер
фигня это, json сериализация грузит так же
 

scorpion-ds

Новичок
Когда-то задумывался как лучше делать, в итоге обычно генерю HTML фрагмент и отдаю его клиенту.

Пример, с чем недавно столкнулся:
Нужно было сделать комменты на одном из сайтов работающие на Ajax, также рассматривал два варианта JSON или вернуть готовый HTML, в итоге остановился на HTML. Во-первых SEO, во-вторых проще код получается. Изначально комменты формирует отдельный контроллер, которых их сразу встраивает в код всей страницы, дальше тот же контроллер обновляет комменты, но уже на Ajax, для вариант на JSON пришлось бы или отказаться от SEO или дублировать механизм формирования комментов.
 

Absinthe

жожо
Отрисовка с помощью JS мне кажется лучше тем, что это снижает нагрузку на сервер, так как генерацию HTML берёт на себя комп. клиента а не сервера.
Сильнее грузит: http запросов на тот же объем информации больше.
 

fixxxer

К.О.
Партнер клуба
Это смотря как строить API. В том же json-rpc есть батчи. При желании легко расширяются фильтрами-условиями-циклами :)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ответа не существует, выбор между thin и thick client - актуальный вопрос уже лет 30, надо смотреть на потребности бизнеса
 

Brazzford

Новичок
Спасибо большое за ответы! А может быть, существует такое правило - всё, что можно перенести на сервак, нужно переносить на сервак? Или такой подход тоже не верен? Да, и, наверное, на мой вопрос, действительно, не может быть однозначного ответа - всё зависит от специфики конкретного проекта.
 

AnrDaemon

Продвинутый новичок
Тебе же grigori только что сказал, что люди уже 30 лет об этом спорят…
Я могу привести кучу примеров, где используются каждая из этих моделей, а так же промежуточные (генерация JS на сервере и рендер HTML из JS на клиенте, например).
 
Сверху