从其余api检索大量数据

问题描述:

我打电话给第三方休息api.this休息api返回多于2000条记录,需要很多时间 检索此信息。我想在asp.net页面中显示这些记录。 成功记录在页面中显示,但问题是需要很长时间来显示/检索此信息。从其余api检索大量数据

我把这个API称为下拉式变化,所以api调用可能会一次又一次。意味着它不是一次性调用,而且我也不能缓存这些信息,因为在服务器端可能会有信息发生变化。

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

在此先感谢

+0

花在检索或显示的时间?如果您直接在浏览器中打电话并将所有代码剪掉,是否尝试过计时? – MNGwinn 2012-07-12 20:46:59

+0

花费在检索 – Ali 2012-07-12 22:22:52

对于任何问题,总是有一个解决方法,即使它一见不见。

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

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

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

  • 然后考虑下,使用外部服务定期

  • 揭露这个本地数据允许分页复制数据库中的数据,并从您的客户端代码

正如任何设计决定使用它,有取舍,你应该评估把你的最终选择,这些都是我们与这样的设计问题:当用户请求

  • 潜在PHE数据将不会一致。您可以每隔xxx分钟将数据轮询到服务器,具体取决于它发生变化的频率()注意:通常我们作为开发人员,我们对这种数据不一致感到不满意,我们希望实时查看所有内容,但是事实是,最终用户大多数时间都可以忍受这种延迟,因为这是他们在现实生活中使用的方式,请咨询最终用户以收集他们对此的看法。您可以阅读更多关于这从Eric Evans的在蓝皮书

  • 你必须写额外的代码在本地保持数据

可悲的是,当你正在处理包含这些条件的第三方服务,有几个选项可以选择,我建议你与你的最终用户解释他们的权衡,以选择最适合您的需求

替代解决方案评估他们都:

  • 既然我已经表示,这些数据将不会一致的时候,那么也许你可以考虑调用缓存的服务=)

  • 通常情况下,最简单的办法就是始终要面对类似的最佳途径这个,因为你没有在你的文章中提到它,我会在这里发表评论。你是否试图简单地请求第三方机构允许分页?与您的第三方合作伙伴取得联系并谈论此事。

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

+0

首先感谢您的回复。我正在开发一个Web门户,用于从asigra(云备份专家)获取信息(也可以添加/更新),为此我使用DS-NOC API。因此,我不能去其他第三方 – Ali 2012-07-12 22:32:58

那么,如何缩短下载时间或任何诀窍(不支持分页),任何建议?

如果API不支持分页,那么从消费者的角度来看,您可以做的并不多,而不是缓存数据以避免昂贵的HTTP调用。

没有奇迹。没有client.MaxDownloadTimeMs属性,例如您可以设置为5,并在5毫秒内获取您的大数据。

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

此外,看看第三方api是否有任何选项可以在将数据发送给您之前对数据进行压缩(压缩)。我创建了几个API,并为大型数据集创建了这种类型的选项。