Ответ 1
Оба являются действительными инструментами, которые не обязательно отменяют друг друга.
Turbolinks: позволяет загружать только тело страницы, что заставляет его работать как запрос AJAX (примером такого поведения будет тот, который есть у Facebook).
Преимущества:
- Пропускает задачу браузера, полностью отображая новую страницу, тем самым устраняя "пустую страницу", когда браузер не отвечает.
- Связано с предыдущим: Если у вас возникло поведение, которое может повлиять на загрузку новой страницы, например, скажем, воспроизведение песни, turbolinks не повлияет на нее (см. soundcloud next).
- Не перезагружает головку документа, поэтому не загружает те же теги/содержимое дважды (если это то же самое).
- Позволяет кэшировать содержимое просмотров на стороне сервера.
Недостатки:
- Перетаскивание, если действительно необходимо обновить теги заголовков (новые файлы js, новые файлы css, обновление метатегов...)
- Если вы хотите использовать рендеринг представления на стороне клиента, это просто не инструмент для него.
- Поведение по умолчанию, чтобы отключить поведение, просто болезненно (используя классы css, чтобы отключить теги привязки внутри раздела, которые просто отстой).
На самом деле вопрос о том, что такое архитектура вашего приложения, в чем его цель.
О конвейерной обработке активов, у меня были смешанные результаты, хотя я бы сказал, что у нее больше преимуществ, чем недостатков. В целом, инструменты предварительной обработки повышают производительность разработки кросс-браузера, но не полагаются на нее в производстве. Но в случае конвейерной обработки активов он должен делать то же, что и вы. Вы можете предварительно обработать SASS, Coffeescript, у вас есть большие библиотеки, такие как компас или бурбон, но это также может увеличить производительность. Итак, сравните его и посмотрите, должны ли они быть инструментами для вас.