У вас есть правильная идея по оптимизации ваших шаблонов. Есть два варианта, и выбор, вероятно, зависит от того, хотите ли вы отображать свои шаблоны на стороне клиента или на стороне сервера.
Если вы хотите отобразить их на стороне клиента, вы можете выполнить настоящую прекомпиляцию с помощью Hogan.js. Да, это не работает в .NET, но я думаю, вы неправильно поняли, когда возможна предварительная компиляция. Вместо того, чтобы ожидать, что это произойдет при каждом веб-запросе или загрузке страницы, вы можете заранее скомпилировать свои шаблоны как часть процесса сборки. Вам нужно установить node и npm, чтобы настроить это, но вам нужно только запустить это локально на вашем собственном компьютере или в сборочном блоке, если вы его используете. Всякий раз, когда вы обновляете свои шаблоны, вы должны снова запускать Hogan, чтобы обновить выходной файл. Скомпилированный вывод будет файлом JavaScript, полным функций, оптимизированных для дальнейшего использования. Эти функции включают строки вашего шаблона, а также логику для визуализации данных в стиле Mustache. Затем вы можете включить выходной файл, как и любое другое включение JavaScript, или включить его с другими источниками для минификации, если вы это сделаете.
Второй вариант - отрендерить шаблоны на стороне сервера. Это отличается от предварительной компиляции, сервер будет компилировать и повторно отображать шаблоны для каждого веб-запроса. Отойдите от Hogan.js и посмотрите на альтернативу .NET, такую как Nustache. Самое замечательное в Mustache то, что он имеет спецификацию и был перенесен на несколько серверных языков.
В этих вариантах есть фундаментальная разница в том, где происходит рендеринг. Возможно, вы даже захотите использовать оба подхода в определенных сценариях, например, если вы хотите отобразить начальную загрузку страницы на стороне сервера с помощью Nustache, но при этом иметь динамические элементы, которые должны отображаться в браузере с использованием шаблонов, предварительно скомпилированных с помощью Hogan.
Дополнительная информация: Nustache на Github
Надеюсь, вы найдете это полезным!
person
Will Klein
schedule
13.03.2013