我正在使用 objectify 光标来实现基本的分页,基本上是创建一个more
按钮.. 你如何最好地使用 objectify 来实现分页,以建立允许用户前进和后退的链接。更像是一个页面列表..
1, 2, 3, 4, more
我正在使用 objectify 光标来实现基本的分页,基本上是创建一个more
按钮.. 你如何最好地使用 objectify 来实现分页,以建立允许用户前进和后退的链接。更像是一个页面列表..
1, 2, 3, 4, more
您最好的选择可能是获取整个结果集的密钥并将其存储在会话或 javascript 中。每个下一个/上一个都可以通过 id 加载列表中的下一个项目。通过 id 加载非常便宜。您可以在内存缓存中缓存完整的查询结果,只要它不是太大,但这将取决于您要获取的对象类型。
您可以使用游标创建向前和向后一页的分页,通过FetchOptions.startCursor(..)
和FetchOptions.endCursor(..)
要创建更直接的分页链接,您必须使用FetchOptions.limit(..)
和FetchOptions.offset(..)
。
请注意,这offset(..)
可能非常昂贵,因为它会获取给定页面之前的所有实体。因此,根据整个集合的使用和大小,您可能最好通过预加载和缓存一组密钥。或者更好的是,用搜索代替分页。