搜索结果分页,最佳实践

时间:2012-04-11 23:33:38

标签: web-services search pagination

我通过来自几个不同提供商的WS请求获得了一些结果,然后我收集并订购结果并将其显示给用户。

结果的数量介于0到60-70之间,平均为10-20。 我的问题是:如何处理分页?  我正在试图弄清楚哪种方法适合我的情况,因为我已经找到了几种方法来做到这一点......我确信我错过了其他好的(可能更好的)解决方案...我认为的解决方案直到现在:

1)通过WebServices为每个页面(15个结果)进行新的聚合搜索。这是愚蠢的,但由于平均结果数为10-20,因此不会经常使用分页。

2)将所有结果保存在数据库中作为临时缓存,然后在时间显示15个结果

3)将所有结果加载到单个页面中,但使用Jquery分页插件(客户端?)仅显示15个页面

2 个答案:

答案 0 :(得分:1)

这取决于1个结果有多大,但如果你有最高60-70的结果,我宁愿不分页,特别是如果它不常见的话。更好的用户体验。

答案 1 :(得分:1)

你真的确定有一天Web服务不会开始返回更多结果吗?如果有一天有一个错误,它会意外地将50,000份相同的结果返回给你,该怎么办?在您的每个解决方案中:

  1. 大于预期的结果数量会导致您通过重复请求相同结果来向Web服务发送垃圾邮件,因为用户会通过它们进行分页。

  2. 大于预期的结果数量最终会暂时占用数据库中的空间。此外,在Web应用程序中,您如何知道何时清除缓存?

  3. 大于预期的结果数将最终成为用户浏览器中的一个巨大页面,在下载整个内容之前可能无法正确呈现。

  4. 我非常喜欢选项3.缓存是在需要数据的地方完成的,Web服务没有多余的点击,并且用户的分页速度非常快。

    如果您确定不会返回超过60-70的结果,并且/或者您的用户永远不会想要大量的结果,您可以将选项3与结果数量上限相结合你会回来的。

    即使在Web服务返回错误/意外结果的最坏情况下,您也可以将其修改为第一个,将它们发送到浏览器,然后使用JavaScript将它们分页。