Речь идёт о REST-подобной MVC архитектуре веб-ресурса, в качестве шаблонизатора в которой выступает
EJS. Проще показать пример, чем объяснять детали:
В ответ на запрос
http://example.com/categories
или, например,
http://example.com/posts/100500
сервер отправит клиенту
text/html
, а в ответ на
http://example.com/categories.json
и
http://example.com/posts/100500.json
—
application/json
. Соответственно, в первом случае обработка шаблона происходит на сервере, а во втором — прямо на клиенте. Допустим, все внутренние ссылки мы снабжаем событием
onclick
, а единожды написанная callback-функция выполняет AJAX-запрос и обновляет DOM, используя наш шаблонизатор и тот же самый файл шаблона в браузере клиента.
Если мы пишем на node.js, это был бы глупый вопрос, но мы пишем на PHP, и целесообразно ли использовать
PHP-реализацию V8 для создания данной архитектуры — вопрос резонный.
Вот мои соображения на этот счёт:
- Плюсы:
- Повторное использование кода. Шаблон пишется один раз.
- Более простая поддержка и расширяемость. Вытекает из предыдущего.
- Один контроллер/экшн на одну сущность — по условию либо рендерит шаблон, либо отдаёт json клиенту.
- Шаблон обрабатывается на сервере только при начальной загрузке страницы. В дальнейшем клиент получает только данные. Имеет смысл для веб-приложений — снижается трафик и нагрузка на сервер.
- Минусы:
- Есть сомнения в целесообразности использования ещё одного интерпретатора поверх второго.
- Бессмысленно для одностраничных неинтерактивных ресурсов типа лэндингов.
Мне нравится эта идея, но она выглядит как авантюра. Уповаю на ваш опыт, отцы. Ваши мнения, пожалуйста.