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

Node.js: Планирование на стороне клиента v/s Серверные шаблоны

Я пытаюсь изучить Node.js в течение нескольких дней, но есть одна вещь, о которой я запутался.

В чем разница между решением для шаблонов на стороне клиента, такими как шаблоны JQuery и серверным решением, например Jade для Node.js?

Какое использование для каждого? Где они используются? Могут ли они использоваться вместе? Есть ли пример того, как они используются вместе, если так?

Я просто не могу обдумать это. Было бы неплохо иметь обзор вещей от кого-то здесь...

4b9b3361

Ответ 1

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

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

Типичной причиной использования клиентских шаблонов является наличие приложения, которое загружает больше данных с сервера с помощью ajax, websockets или таких. В таком случае вы можете захотеть иметь клиентский шаблон для рендеринга недавно загруженных данных.

Например:

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

Приложение использует socket.io, который отправляет клиенту некоторые события и данные с сервера. Чтобы отобразить эти данные, я использовал шаблоны клиентской стороны Knockoutjs.

Так что в моем случае это своего рода гибридный подход. Причина, по которой я это делал, заключается в том, что разметка, которую я создаю на сервере, сразу же будет отображаться после загрузки страницы. Данные, которые поступают из socket.io, также могли быть отображены в HTML на сервере, но для этого потребуется больше полосы пропускания, чем отправка простых объектов JSON или таких, поэтому я решил отобразить их на клиенте.

Очевидно, что я мог использовать шаблон клиентской стороны для всего сайта, но я не видел никакой пользы в рендеринге статических частей на клиенте. Это просто сделало бы клиентский код моего приложения более сложным.