2014-01-08 3 views
15

Я создаю сайт, используя nodejs и express. Как сделать разделы в динамической странице? Для этого используется Джейд? если не так, как это сделать? Для чего используется угловая? Пожалуйста, помогите мне много искать в google, и я не мог получить ясность в их использовании.Фактическое использование шаблона Jade и angularjs

+1

Угловой учебник, вероятно, является лучшим местом для начала, поскольку вам, вероятно, нужно быть более конкретным, чтобы получить ответ здесь. http://docs.angularjs.org/tutorial – ivarni

ответ

36

Jade создает html используемый в браузере на сервере . Браузер выполняет запрос на веб-сервер, веб-сервер выполняет Jade, который будет генерировать html, который будет отправлен в браузер. Этот серверный контент-контент был очень распространен за последние 20 лет, но при создании богатого интернет-приложения он имеет немалые недостатки. В основном это связано с отслеживанием производительности и состояния клиента.

AngularJS является стороной клиента MVC/MVVM как платформы для создания так называемых Single Page Applications (SPA), что позволяет иметь полный поток пользовательского интерфейса, все поколения контента и отслеживание состояния должны быть сделан на сторона клиента. Он даже позволяет создавать автономные приложения. С точки зрения разработчика это больше похоже на создание настольного приложения, где клиент знает состояние пользовательского интерфейса. С точки зрения пользователя веб-сайт будет реагировать намного более гладко и сдержаннее, потому что пользовательский интерфейс создается локально.

Примечание: SPA делает не означает, что на вашем сайте может быть только одна страница. Это технический термин, когда браузер загружает одну страницу (~/index.html), которая содержит полное или частичное веб-приложение. Пользователь технически никогда не покидает эту страницу, но содержимое (страницы) динамически меняет местами и выходит из этой страницы-заполнителя.

К наиболее распространенному способу предоставления данных SPA через RESTful веб-сервисы. AngularJS поставляется с builtin support для REST.

Некоторые разработчики объединяют методы генерации содержимого на стороне сервера с помощью AngularJS, но на самом деле нет реальной необходимости в этом.

+0

Любопытно, почему вы говорите: «Некоторые разработчики объединяют методы создания контента на стороне сервера с помощью AngularJS, но на самом деле реальной необходимости в этом нет». Одной из причин, почему я могу сразу подумать, является SEO. Я знаю, что Google планирует сканировать js-страницы, но я уверен, что другие поисковые системы не реализовали такую ​​функциональность. Еще одна важная причина - скорость и скорость восприятия пользователя. Получение чего-то на экране сразу должно иметь первостепенное значение. – TYRONEMICHAEL

+0

@TyroneMichael Это не черное и белое; Угловое не очень поможет с картой сайта xml и AFAIK, не существует сканера, который будет обрабатывать SPA без предоставления им [некоторые предварительно обработанные html] (http://www.yearofmoo.com/2012/11/angularjs- и-seo.html). В некоторых случаях, возможно, быстрее будет обслуживать клиента предварительно обработанным представлением, но в целом это просто добавляет некоторые ненужные осложнения для конвейера. Угловая в лучшем случае, если вы позволите ей оптимизировать кешированные шаблоны и передать ей данные (json) из REST api. – null

+0

Я согласен с вами на 100%. Это может усложнить ситуацию. Если, однако, вы можете использовать jade с Angular, вы можете обслуживать клиентский предварительно обработанный html с помощью Node и повторно использовать ваши шаблоны с угловым. Вот что изначально привело меня сюда. Поэтому ваш сервер и клиент могут повторно использовать шаблоны, которые значительно упрощают работу. – TYRONEMICHAEL

0

Jade используется как механизм шаблонов как на стороне сервера, так и на стороне клиента. Да, он может динамически обновлять страницу, вам просто нужно скомпилировать ваши шаблоны jade для javascript-функций (используя jade -c или что-то подобное).

Да, вы можете использовать angular.js вместе с ним, но я не вижу реального использования двух шаблонных двигателей в вашем проекте. Предлагая просто придерживаться нефрита, если вы не знаете, что делаете.

+9

Я использую нефрит для создания угловых частей. Мне только нужно, чтобы beacuse html был уродливым и многословным. –

Смежные вопросы