当前位置:  开发笔记 > 编程语言 > 正文

REST Web应用程序中的分页

如何解决《RESTWeb应用程序中的分页》经验,为你挑选了1个好方法。

通常,用户进行搜索,获取命中列表,然后可以浏览它.hitlist是一个中间结果,在整个浏览过程中保持一致,通常存储在会话状态中.例如,如果新项目由其他项目同时添加,则它们仅出现在后续搜索中.

在REST应用程序中,我不能轻易获得这个中间结果 - 它既不属于客户端,也不属于模型.我在REST网络应用程序中阅读了分页,但我的答案并不完全清楚.那里的解决方案似乎假设在用户浏览结果时不更新模型.

我们当然可以将世界(模型)想象成一系列不可变的快照.通过提供一个时间戳(或全球版本号),我们就得到了模型的一致视图在那个时候,这从概念的角度来看解决了这个问题.但它确实意味着模型的完整版本.(我也想知道是否有与函数式编程相关的连接)

我该如何处理这个问题?

注意:我问,因为我打算使用play框架,它根本没有HTTP状态或会话的概念; 这是纯粹的宁静.



1> sirmak..:

在第一次搜索得到查询结果后,您可以将结果保存在缓存中.对于一个服务器,它可以是群集环境的ehcache(在播放中支持)或memcached(也由播放支持).您可以使用静态名称+会话ID保存结果.因此,您只需要每个请求的会话ID,它将保存在客户端cookie中,并在您的播放应用中提供.您可以使用缓存数据来浏览页面.我也推荐ElasticSearch.

编辑:更好的方法是你可以使用play-search http://github.com/jfp/play-search,示例:

    Query q = Search.search("object:dogs", Folder.class);
q.orderBy("object")
    .page(2,5)
    .reverse();

PS:你对Play的决定是完美的.我是一名专业的.net开发人员,我可以说世界上唯一可以与asp.net mvc 2竞争的(最佳)Web框架是Play框架.Grails是buggy,Django/Python,Yii/Php,Rails都很慢,不是类型安全而且远离jvm/clr框架.wicket,挂毯,struts,jsf,spring mvc都是冗长无用的.spring roo只是一个模板生成器.Asp.net mvc超越了asp.net并成为.net的第一开发平台,但是sun为一个旧的asp.net克隆用jsf为下一代,大错.在我看来,java的唯一希望就是玩框架.使用scala模块,它是完美的......

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有