3

用Play来设计一个网络应用程序的好方法是什么?我正在开发一个客户端应用程序,它使用Ajax获取部分视图,然后使用JQuery将它们置于DOM中。为了支持SEO和优雅的降级,我应该制作一个重复的控制器方法,它将局部视图呈现为整个页面的一部分(包括页眉和页脚)。所以当我使用Jquery进行调用时,它会调用“item/12345/partial”,它只会带来部分视图,但当用户转到“item/12345”时,它应该显示整个页面,部分已经卡住了。设计一个使用Ajax的Play框架,但也关心搜索引擎优化和优雅的退化

第二种方法是避免第二个控制器方法,并且总是返回完整的页面内容(标题,javascripts,样式,部分和页脚)。当使用JQuery调用时,回调方法将仅剥离必要的HTML并将其放入DOM中。当然,这意味着服务器始终会返回相同数量的内容,所以它首先会降低使用AJAX的优势。

你会推荐哪一个?

回答

0

第二个选项对我来说看起来不太好。我们用我们的项目是什么,我们有一个由AJAX部件延长,这些零件有这样的事情对Ajax请求不加载模板的其余部分基本模板:

#{ifnot request.ajax} 
    #{extends 'search-main.html' /} 
#{/ifnot} 

search-main.html具有#{doLayout /}的地方如果要呈现整页(非Ajax请求),则应该发生ajax部分。价值在request.ajax将由Play设置,所以你不必自己弄清楚。

关于重复控制器:如果需要,您应该能够将一个控制器映射到多个URL。只需将它们添加到routes文件。但在我们的方法中不是必需的。