Прежде всего, могут возникнуть ситуации, когда вы вынуждены использовать комбинацию обоих (для одних и тех же структур).Очевидно, что это утечки ремонтопригодности и следует избегать.
Из ремонтопригодности , гибкость или скорость разработки зрения, вы должны рассмотреть первый вариант.Это то, для чего делается Grails.Для этого есть большие преимущества: вы можете визуализировать ваш шаблон в GSP, когда GSP вызывается впервые.Когда вызывается действие AJAX, вы просто переопределяете только этот шаблон.Это коротко, просто и работает.Большинство тегов Grails могут справиться с этими действиями.Кроме того, он легко тестируемый .
Однако при таком подходе вы теряете немного возможность повторного использования , когда хотите обновить контент на основе других событий (например, WebSockets / comet).и вы не хотите / не можете снова вызвать сервер.В этом случае вам следует реализовать логику шаблона с использованием jQuery-Template и заполнить его данными JSON, полученными из вашего push-сообщения сервера.
Производительность : Существуют также варианты использования, в которых следует учитывать и второй вариант: если у вас есть чат, вы хотите, чтобы новые сообщения отображались только постепенно (или вынеобходимо уменьшить используемую полосу пропускания сервера) и не хотеть отправлять пользователю полный ход чата только потому, что есть одно маленькое новое сообщение.Здесь вы не можете использовать шаблоны без каких-либо взломов или ограничений.Кроме того, если вы хотите предоставить пользователю ощущение в реальном времени, вы не можете позволить ему ждать ответа сервера, и вам необходимо обновить представление напрямую, используя JQuery, где вы не можете повторно использовать свой шаблон.Поэтому вы должны хранить данные шаблона в одном месте и использовать исключительно jQuery-Template или аналогичный - по крайней мере, с моей точки зрения.