3

什么是使用 Play 设计 Web 应用程序的好方法,它提供了优雅的降级?我正在开发一个客户端应用程序,它使用 Ajax 获取部分视图,然后使用 JQuery 将它们放置到 DOM 中。

为了支持 SEO 和优雅降级,我应该创建一个重复的控制器方法,它将部分视图呈现为整个页面的一部分(包括页眉和页脚)。所以当我使用 Jquery 进行调用时,它将调用“item/12345 /partial”,它只会带来部分视图,但是当用户转到“item/12345”时,它应该显示整个页面,其中部分已经被卡住了。

第二个选项是避免使用第二个控制器方法,并始终返回整个页面内容(页眉、javascript、样式、部分和页脚)。当使用 JQuery 调用时,回调方法将仅剥离必要的 HTML 并将其放入 DOM。当然,这意味着从服务器返回的内容总是相同的,所以它确实降低了使用 AJAX 的优势。

你会推荐哪一个?

4

1 回答 1

0

第二种选择对我来说不是很好。我们在项目中使用的是我们有由 ajax 部分扩展的基本模板,这些部分有这样的东西,不会在 ajax 请求上加载模板的其余部分:

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

如果要呈现整个页面(非 ajax 请求),并且在应该出现 ajax 部分的地方search-main.html已经到位。#{doLayout /}价值 request.ajax将由 Play 设置,因此您不必自己弄清楚。

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

于 2013-04-08T20:24:15.573 回答