g:include vs g:render

时间:2012-06-14 14:07:05

标签: grails include render

我有一个关于g:render和g:include的优点和缺点的问题。 在我的应用程序中,我有一段代码,显示了一些必须在某些gsp中重复的信息,它显示的内容取决于一些逻辑。
我怀疑是否最好使用 g:include g:render ??? 那么,在将模型传递给使用g:render包含的布局的页面的控制器上执行逻辑是否更好,或者最好将ag:include放到gsp中另一个执行该控件的控制器中的另一个操作中那篇文章的逻辑?
我更喜欢第二种选择,但它对性能有多大影响?

2 个答案:

答案 0 :(得分:9)

它们仅用于不同的情况。当您有一个控制器返回一个容易嵌入多个GSP的内容时,可以使用<g:include .../>。如果您实际上在控制器级别缓存了大量流量,这也很有用,因为您可以消除大量开销。

当您在页面中需要模块化时,

<g:render.../>非常有用。特别是对于AJAX调用,您可能最初加载页面的一部分,然后根据某些AJAX事件更新它。

两者都可以用于重用内容,两者都适用于正确的上下文。

答案 1 :(得分:0)

g:渲染在您处理部分模板时非常有用,并且您拥有所需的模型等。 但是,当您需要额外(或广泛)的进度来为视图(模板)传递额外的,更有意义的事物时,最好使用g:include。 通过使用g:include,您还将拥有一个不错的控制器,这意味着使用该控制器的代码更易读。 在传递给控制器​​动作和渲染视图时不进行额外操作和“渲染视图”之间不会进行性能比较。