2011-08-19 85 views
1

我想使用Grails创建Web应用程序。Grails视图渲染。呈现GSP或使用主干+模板?

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

让我们专注于内容布局。我有两种选择来渲染视图:

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

这两个选项哪一个更好?

我主要考虑以下参数:易于开发,性能,可维护性等。 但如果您认为还有其他重要参数需要考虑,请告诉我。我不是一个体验Web开发人员。

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

谢谢:)

回答

0

首先,有可能的情况下,你不得不使用两者的组合(同样的结构)。显然这种可维护性泄漏应该避免。

可维护性灵活性速度的发展观,你首先应该考虑的选项。这是Grails所完成的。这样做有很大的好处:当第一次调用GSP时,可以将模板渲染到GSP中。当一个AJAX动作被调用时,你只需重新渲染这个模板。它简短,简单而有效。大多数Grails标签都可以处理这些操作。此外,它很容易可测试

但是,如果您想根据其他事件(如WebSockets/comet)更新您的内容并且您不希望/不能再次调用服务器,那么您将失去一点点可重用性。在这种情况下,您应该使用jQuery-Template实现模板逻辑,并使用从服务器推送消息接收的JSON数据填充模板逻辑。

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

+0

谢谢。我想我的要求迫使我使用两者。没有选择 :( – hida