Grails查看渲染。渲染GSP还是使用骨干+模板?

时间:2011-08-19 03:39:02

标签: jquery grails backbone.js gsp

我想使用Grails创建Web应用程序。

主要布局由顶部,左侧,内容等几个部分组成。 我希望每个部分都可以部分刷新。我打算使用jQuery来执行ajax请求并刷新。

让我们关注内容布局。我有两个选项来渲染视图:

  1. 我们知道,Grails默认使用Sitemesh作为其视图。所以基本上,我将使用jQuery来使用ajax获取gsp页面。 并将该页面放入内容布局中。
  2. 我将使用jQuery从Grails控制器获取JSON对象(而不是GSP),并使用任何jquery模板插件使用渲染视图。 我可能需要使用backbone.js / spine.js来管理OO结构。
  3. 两个选项中哪一个更好?

    我主要考虑以下参数:易于开发,性能,可持续性等。 但如果您认为还有其他重要参数需要考虑,请告诉我。我不是一位经验丰富的网络开发人员。

    或许你知道其他更好的选择吗?

    谢谢:)

1 个答案:

答案 0 :(得分:0)

首先,可能存在这样的情况,即您被迫使用两者的组合(对于相同的结构)。显然这种可维护性泄漏应该避免。

可维护性灵活性开发速度视图,您应该考虑第一个选项。这就是grails的用途。这有很大的优势:当第一次调用GSP时,您可以将模板渲染到GSP中。调用AJAX操作时,您只需重新渲染此模板。它简短,简单,有效。最grails标记可以处理这些操作。此外,它很容易可测试

但是,如果您希望根据其他事件(如WebSockets / comet)更新内容并且您不希望/无法再次调用服务器,则使用此方法会丢失可重用性。在这些情况下,您应该使用jQuery-Template实现模板逻辑,并使用从服务器推送消息接收的JSON数据填充它。

性能:还有一些用例,您也应该考虑第二个选项:如果您有聊天,您只想逐步显示新消息(或者您需要减少已使用的服务器的带宽,并且不希望仅仅因为有一条小的新消息就向用户发送完整的聊天进度。在这里,你不能使用没有一些黑客或限制的模板。此外,如果您想为用户提供实时感觉,您不能让他等待服务器的答案,您需要使用JQuery直接更新视图,您无法重用模板。因此,您应该将模板数据放在一个位置,并使用jQuery-Template或类似的 - 至少从我的角度来看。