我使用物化游标来实现基本分页,基本上创建了more
按钮。如何最好地使用物化来实现分页,以建立允许用户前进和后退的链接。更多的东西一样的页列表..使用物化实现良好的分页
1, 2, 3, 4, more
我使用物化游标来实现基本分页,基本上创建了more
按钮。如何最好地使用物化来实现分页,以建立允许用户前进和后退的链接。更多的东西一样的页列表..使用物化实现良好的分页
1, 2, 3, 4, more
您可以使用光标一页向前和向后建立呼叫,通过FetchOptions.startCursor(..)
和FetchOptions.endCursor(..)
要创建你将不得不使用更直接的分页链接FetchOptions.limit(..)
和FetchOptions.offset(..)
。
请注意,offset(..)
可能会非常昂贵,因为它会获取给定页面之前出现的所有实体。因此,根据整个集合的用法和大小,通过预加载和缓存一组密钥可能会更好。或者更好的是,用搜索替换分页。
最好的办法可能是获取整个结果集的密钥并将其存储在会话中或JavaScript中。每个next/previous都可以通过id加载列表中的下一个项目。按ID加载非常便宜。您可以将完整的查询结果缓存在memcache中,只要它不是太大,但这取决于您要提取什么类型的对象。
他正在使用Objectify ... – 2012-03-15 21:07:43
Objectify是一个围绕低级API的非常薄的层 - 它实际上使用低级API的光标:http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify #游标 – 2012-03-15 21:43:24
是的,但这不是你用来访问游标中的游标的语法,在网站上的分页我根本不会使用游标。我会将这些键加载到一个列表中,并将它们粘贴到一个会话或JavaScript中。 – 2012-03-16 01:05:29