设计一个使用Ajax的游戏框架,但也关心SEO和优雅的退化



使用Play设计web应用程序的好方法是什么?我正在开发一个客户端应用程序,它使用Ajax获取一些局部视图,然后使用JQuery将它们放入DOM中。

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

第二个选项是避免第二个控制器方法,总是返回完整的页面内容(header、javascripts、styles、partial和footer)。当用JQuery调用时,回调方法只会剥离必要的HTML并将其放入DOM中。当然,这意味着始终会从服务器返回相同数量的内容,因此从一开始就降低了使用AJAX的优势。

你推荐哪一个?

第二个选项看起来不太适合我。我们在项目中使用的是由ajax部分扩展的基本模板这些部分是这样的不会在ajax请求时加载模板的其余部分:

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

search-main.html#{doLayout /}在ajax部分应该发生的地方,如果要呈现整个页面(非ajax请求)。request.ajax中的值将由Play设置,因此您不必自己计算。

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

相关内容

  • 没有找到相关文章

最新更新