oma*_*llo 6 html javascript grails view-templates
我想知道在Web应用程序中渲染部分视图的好方法(或推荐方法).
我有一个要求,我需要使用AJAX将数据加载到已经呈现的页面中,有点像页面末尾的"加载更多..."链接,它从服务器获取更多信息并将其呈现到底部这页纸.
我正在玩AJAX响应的两个选项是
render template:'tmplt_name')并通过网络发送它,然后将结果附加到页面底部还有其他方法吗?如果没有,鉴于上述选项在维护,性能和可测试性方面会更好?我确定的一件事是,JSON路由(在大多数情况下)比使用线路发送html消耗更少的带宽.
这实际上是一个非常有趣的问题,因为它揭示了一些有趣的设计决策。
\n\n我更喜欢渲染部分模板,因为它使我的应用程序能够随时间变化。如果我需要将图表从 a 更改<table>为 a <div>,很容易将其封装在模板中。考虑到这一点,我将几乎每个页面视为许多小模板的集合,这些模板可能会发生变化。Grails 2.0 默认脚手架已转向这种类型的方法,这是一个好主意。
问题的关键在于它们应该是客户端模板还是服务器端模板。
\n\n服务器端模板使您的标记在初始页面加载时保持清晰。即使您使用像ICanHazJS的Mustache这样的东西,您也需要在页面中有一个空元素(带有您的模板的东西),适当地设计它的样式,并在 Javascript 中使用它才能更新您的信息。
\n\n缺点
\n\n好处
\n\n然而,客户端模板确实可以减少服务器负载。它们使应用程序“不那么啰嗦”,因为您可以通过发送回更大的 JSON 集合(以与 HTML 中的 HTML 占用的字节数相同或更少的字节数)来最大限度地减少对服务器的回调次数。服务器端模板方案)。它们还使用户的 UI 体验非常快,因为单击“更新”链接不必进行 AJAX 往返。有人说:
\n\n\n\n\nAnthony Eden @aeden 12 月 10 日回复转发收藏 \xc2\xb7 打开\n Web 应用程序的未来:请求由函数处理,逻辑始终异步,并且永远不会在服务器上生成 HTML。
\n
缺点
\n\n优点\n - 响应灵敏\n - 信封更小
\n\n趋势似乎正在向客户端模板发展,尤其是 HTML5 添加的功能(例如<canvas>)...但是如果利用它们需要您依赖您不太熟悉的技术,并且您对 Grails 感觉更舒服部分,可能值得从这些开始,然后根据性能和其他问题研究对客户端模板的重构。