0

假设我有一个包含 100 种产品的网站。然后将其过滤为 5 个部分,每个部分包含 20 个产品。如果您位于包含 20 个产品(例如玩具)的部分之一,那么每页仅显示 5 个玩具的最佳方法是什么?列表底部是下一个/上一个按钮,用于显示下一个/上一个 5 个玩具。

更好的类比是谷歌搜索。有数百万个结果,但在给定时间仅显示约 10 个。

所以现在我正在使用谷歌应用引擎(python)和 django 模板。我想解决这个问题的一种方法是将所有查询结果放入一个 div 中,然后可以通过 javascript 对其进行修改以产生类似的效果。但是,如果有人单击浏览器的后退按钮,他们就不会回到原来的位置。

提前致谢。任何帮助都会很有用......我不知道这种技术叫什么,所以谷歌并没有真正有用:(

编辑:根据回复,我发现我的问题在这里得到了解决:如何使用 cursor() 进行分页?

4

2 回答 2

1

查看查询游标。Thay 被序列化并发送到客户端,用于创建“下一个”和“上一个”分页请求。

注意:不要offset在查询中使用。这可能非常昂贵,因为它实际上会获取(并收费)所有实体到offset+limitposition,但只返回应用程序的limit结果。

于 2012-04-21T07:17:30.257 回答
0

如果您可能有一个很大的结果集(想想如果 Google 使用这种方法会发生什么),我不确定将所有结果作为隐藏内容放在 HTML 中并使用 JS 操作它是一个非常好的主意。还有你提到的背面功能问题。

因此,对于每次查询想要的“结果页面”,我认为 Google 的GQL 参考可能会对您有所帮助,具体看一下 LIMIT 子句,它可以通过提供它来帮助您创建您正在寻找的分页机制您希望作为“计数”的每页项目数和以前查看为“偏移量”的项目数(第一次调用时为 0)。

至于显示,我认为 Google 图片 / Facebook 新闻提要方法也可能很有趣(加载滚动而不是分页),但这是您个人选择的问题 :)

希望这有帮助,祝你好运!

编辑:阅读彼得的回答后,我发现使用游标进行分页更有效,他的回答中给出了很好的参考。

于 2012-04-21T06:58:24.057 回答