我有一个关于g:render和g:include的优点和缺点的问题。
在我的应用程序中,我有一段代码,显示了一些必须在某些gsp中重复的信息,它显示的内容取决于一些逻辑。
我怀疑是否最好使用 g:include 或 g:render ???
那么,在将模型传递给使用g:render包含的布局的页面的控制器上执行逻辑是否更好,或者最好将ag:include放到gsp中另一个执行该控件的控制器中的另一个操作中那篇文章的逻辑?
我更喜欢第二种选择,但它对性能有多大影响?
答案 0 :(得分:9)
它们仅用于不同的情况。当您有一个控制器返回一个容易嵌入多个GSP的内容时,可以使用<g:include .../>
。如果您实际上在控制器级别缓存了大量流量,这也很有用,因为您可以消除大量开销。
<g:render.../>
非常有用。特别是对于AJAX调用,您可能最初加载页面的一部分,然后根据某些AJAX事件更新它。
两者都可以用于重用内容,两者都适用于正确的上下文。
答案 1 :(得分:0)
g:渲染在您处理部分模板时非常有用,并且您拥有所需的模型等。 但是,当您需要额外(或广泛)的进度来为视图(模板)传递额外的,更有意义的事物时,最好使用g:include。 通过使用g:include,您还将拥有一个不错的控制器,这意味着使用该控制器的代码更易读。 在传递给控制器动作和渲染视图时不进行额外操作和“渲染视图”之间不会进行性能比较。