【问题标题】:Grails - Client Side vs Server Side TemplatingGrails - 客户端与服务器端模板
【发布时间】:2013-09-09 12:35:20
【问题描述】:

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

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

使用 GSP 和 JQuery 模板之类的东西似乎过于复杂。

我猜这个问题不是 Grails 特有的,而是整个网络的。

【问题讨论】:

标签: grails web gsp


【解决方案1】:

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

如果您的需求不是那么严格,那么您可能想要使用客户端寺庙,例如 handlebarsmustacheunderscore

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

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

编辑:

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

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

【讨论】:

  • 感谢您的洞察力。我要去看看 Angular。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-07-04
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2019-02-08
    • 2012-06-14
    相关资源
    最近更新 更多