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