我对Web开发并不是很有经验,特别是对于视图,我需要一个简单的解释(并指向一个资源的指针也很好),如何处理部分渲染布局或模板而不渲染整个页面再次...
最佳做法是什么?
Sitemesh布局是否提供此功能?如果是这样的话?
我应该使用JQuery从控制器传递数据作为JSON并用“.html()”更新相应的div吗? (我很久以前就做过类似的事情来做一些基本的事情,并且认为这不是真正的grails方式)
或<g:include>
为我做这件事?
我读到的关于此事的一切让我更加困惑:)
实际上问题是,Grails处理部分页面更新的最佳做法是什么(如果现在还有其他方式,使用Ajax或没有ajax)
提前致谢
编辑:
这tutorial实际上非常清楚如何做到这一点
答案 0 :(得分:5)
最佳做法是什么?
通常的做法是提交一个AJAX请求(即从JavaScript触发的HTTP请求),并使用JavaScript回调函数在返回响应时更新页面的一部分。
Sitemesh布局是否提供此功能?如果是这样的话?
当在服务器端收到AJAX请求时,您可以使用Sitemesh布局响应,就像布置非AJAX请求的响应一样。 Sitemesh不知道或关心正在处理什么类型的请求,或者它是在整理页面还是只是片段。
我应该使用JQuery从控制器传递数据作为JSON并用“.html()”更新相应的div
看一下Grails提供的标签,这些标签在标签名称的某处有“remote”字样。它们提供了一种在Grails应用程序中执行常见AJAX任务的非常简单的方法。例如,要向名为bookByName
的操作提交AJAX请求并将响应添加到ID为foo
的元素,只需将以下标记添加到您的网页即可。
<g:remoteFunction action='bookByName' update='foo'/>
答案 1 :(得分:1)
您可能需要使用RemoteLink标记:http://grails.org/doc/latest/ref/Tags/remoteLink.html 您可以将其配置为在调用远程操作后更新页面的某些片段。
顺便说一下,在客户端使用ajax和javascript也是grails的方式:)