2012-06-14 2 views
5

У меня вопрос о плюсах и минусах g: render и g: include. В моем приложении у меня есть фрагмент кода, который показывает некоторую информацию, которая должна быть повторена в некотором gsp, то, что она показывает, зависит от немного логики.
У меня есть сомнения, что лучше использовать g: включить или g: render ???
Итак, лучше ли выполнять логику контроллера, который передает модель на страницу, использующую макет, включенный в g: render, или лучше поставить ag: включить в другое действие в другом контроллере в gsp, который выполнить логику этой части?
Я предпочитаю второй выбор, но насколько это влияет на производительность?g: include vs g: render

ответ

9

Они используются только в разных случаях. Вы используете <g:include .../>, когда у вас есть контроллер, который возвращает часть контента, которая легко встроена в несколько GSP. Это также полезно, если у вас большой объем трафика, где вы на самом деле кешируете на уровне контроллера, так как вы можете устранить много накладных расходов.

<g:render.../> полезен, когда вам нужна модульность на вашей странице. Особенно для вызовов AJAX, где вы можете сначала загрузить одну часть страницы, а затем обновить ее на основе какого-либо события AJAX.

Оба могут использоваться для повторного использования контента, и оба они подходят в правильном контексте.

0

g: рендеринг полезен, когда вы работаете над частичными шаблонами, и у вас есть требуемая модель и т. Д. Однако, если вам нужен дополнительный (или обширный) прогресс, чтобы передать дополнительные, более значимые вещи вашему виду (шаблону) , лучше использовать g: include. Используя g: include, у вас также будет хороший контроллер, а это значит, что с этим контроллером будет отображаться гораздо более читаемый код. И не было бы сравнения производительности между «переходом к действию контроллера и визуализации представления без дополнительной операции» и «визуализации представления».

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