Grails - 客户端与服务器端模板

时间:2013-09-09 12:35:20

标签: grails web gsp

Grails有GSP用于服务器端模板。这一切都很棒,但一旦数据进入网络浏览器,它已经“煮熟”了。如果我想进行AJAX调用以更新模型,获取更新的模型,然后更新UI,该怎么办? GSP模板对我来说现在没用了。

我宁愿不刷新页面。人们通常在这做什么?为服务器端和客户端使用模板框架吗?

使用像GSP和JQuery模板这样的东西似乎过于复杂。

我想这个问题并不是专门针对Grails的,而是针对网络的。

2 个答案:

答案 0 :(得分:2)

我相信人们开始使用客户端框架来管理不断增长的客户端需求(从骨干开始,以Angular / Ember结束)。

如果您的需求不是那么严重,那么您可能想要使用客户端太阳穴,例如handlebarsmustacheunderscore

您可能有一个gsp文件,其中包含页面上包含的各种客户端模板,然后只需使用javascript在页面上使用示例数据或来自服务器的数据绘制这些模板。

我不同意gsp模板在这种情况下会丢失,除非您正在构建完全动态的体验或单页应用程序,这通常不是grails的情况。

编辑:

当我不得不考虑是否需要一起移动到客户端模板时,我刚刚有一个项目,正在使用骨干。有一种情况是服务器端模板更快。我有搜索表单,并通过Backbone模型检索搜索结果,所以我可以根据模型数据绘制纯粹的下划线模板,或者让服务器将html发送回页面。那些使用Backbone的人已经尖叫我必须使用下划线模板,但因为我必须能够在新标签中打开搜索结果并以Backbone方式执行,有时间限制,不是选择,而是如果请求是xhr我发送了Backbone的html模板,否则我确实渲染了整页。虽然如果我有更多时间,我会只使用客户端模板做任何事情。

我也使用Angular,只使用客户端模板。如果我想使用服务器为Angular构建模板,它应该是“我现在甚至都不是什么”。

答案 1 :(得分:0)

当我们遇到像你这样的情况时,我们使用ajax并在我们的操作中,我们渲染gsp模板并在ajax回调中返回更新的html。客户端,我们只是用我们从服务器收到的新html替换相应的元素。我们将视图设计为非常模块化,以便我们可以通过ajax替换非常精细的部分和渲染模板。