0

我正在调用第三方rest api。这个rest api返回超过2000条记录,这些记录需要很长时间才能检索到这些信息。我想在asp.net页面中显示这些记录。记录成功显示在页面中,但问题是显示/检索此信息需要很长时间。

我将此 api 称为针对下拉更改,因此 api 调用可能会一次又一次。意味着它不是一次调用,而且我无法缓存此信息,因为在服务器端可能信息会更改。

那么如何减少下载时间或任何技巧(不支持分页),有什么建议吗?

提前致谢

4

3 回答 3

1

那么如何减少下载时间或任何技巧(不支持分页),有什么建议吗?

如果 API 不支持分页,那么从消费者的角度来看,除了缓存数据以避免昂贵的 HTTP 调用之外,您无能为力。

没有奇迹。client.MaxDownloadTimeMs例如,您无法设置任何属性5并在不到 5 毫秒的时间内获取大量数据。

于 2012-07-12T20:27:02.013 回答
1

好吧,任何给定的问题总是有一种解决方法,即使你乍一看并没有想到它。

我有这样一种情况,这就是我们所做的:

  • 首先,请记住,如果不编写大量代码,就无法实现实时一致性。例如,如果用户从您的服务请求数据,然后在页面上呈现该数据,那么如果在该精确时间更新源,用户可能会看到数据不足的数据。

    所以我们需要接受数据最终是一致的

  • 然后考虑以下事项,定期使用外部服务复制数据库中的数据

  • 公开此本地数据以允许分页并从您的客户端代码中使用它

作为任何设计决策,您都应该权衡取舍以做出最终选择,这些是我们在这样的设计中遇到的问题:

  • 用户请求时,phe 数据可能会不一致。您可以根据数据更改的频率每 xxx 分钟轮询一次数据到服务器(注意:通常我们作为开发人员,我们对这种数据不一致感到不满意,我们希望实时查看所有内容,但事实, 是最终用户,大部分时间都可以忍受这种延迟,因为这是他们在现实生活中使用的工作方式,请咨询您的最终用户以收集他们对此的看法。您可以阅读更多蓝皮书中的埃里克·埃文斯(Eric Evans)关于这个

  • 您必须编写额外的代码来在本地维护数据

可悲的是,当您与具有这些条件的第三方服务打交道时,可供选择的选项很少,我建议您与最终用户一起评估它们,解释他们的权衡,以选择最适合您需求的解决方案

备择方案:

  • 既然我已经说过数据不会一直保持一致,那么也许你可以考虑缓存对服务的调用=)

  • 通常最简单的方法总是面对这样的事情的最好方法,因为你没有在你的帖子中提到它,我会在这里评论。您是否尝试过简单地请求第三方组织允许寻呼?与您的第三方合作伙伴联系并讨论此问题。

  • 如果可以,请评估其他来源(提供类似服务的其他第三方公司)

于 2012-07-12T21:06:16.213 回答
0

您唯一的选择是将数据缓存一段时间。如果第三方 api 有一个调用,您可以进行比您的下拉更改更通用的调用,您可以在页面加载之前调用它以获取所有可能的下拉值并将结果存储一段时间。然后每次只返回适当的数据。

此外,在将数据发送给您之前,请查看第三方 api 是否有任何用于 gzip (压缩)数据的选项。我已经创建了几个 API,并为大型数据集创建了这种类型的选项。

于 2012-07-12T20:31:57.407 回答