【问题标题】:how to optimize time in webservice while sending request and receiving response?如何在发送请求和接收响应时优化 web 服务的时间?
【发布时间】:2009-12-10 21:23:25
【问题描述】:

我正在使用一些 Web 服务,每次我从 Web 服务获取一些数据时,我都会在循环中请求大约 4000 次 Web 服务,这工作正常......但问题是它需要时间......显然4000 次需要时间,但是有什么方法可以优化时间吗?谢谢。

实际上.. 我有 3 个下拉列表框。第一个下拉列表框是关于国家的,第二个是关于该选定国家的城市的。第三个是世界上所有的城市。第三个下拉列表框是来自世界各地的大约 4413 个城市。

我为什么要使用这个?因为在 .此网络服务用于获取机场国家/地区的数据。

首先。用户在第一个下拉列表框中选择 contry。它的回发并使用 web 服务请求和响应填充第二个。按所选国家/地区的城市名称。

现在。从第二个下拉列表框中选择国家,哪个地方是我的起点。

现在我正在将该国家/地区的机场航班服务与其他城市相匹配,并将所有城市名称列出到与该国家/地区相连的第三个下拉列表框中。

现在。我在下拉列表框中填写的所有数据都是..使用网络服务。请求和响应..

现在的问题是。全世界有4414个城市。所以。我将那个城市与所有这些城市相匹配。所以。请求正在增加,响应需要很长时间。

所以帮助我摆脱这个问题。

告诉我我用来减少这个时间的任何方法。我正在做一些编码。哪个是对的。但是因为这个问题。它花了很多时间来回应。所以。告诉我任何我用来减少时间的方法。

谢谢。

【问题讨论】:

  • 您能提供更多信息吗?您可以将 4000 个数据交互发送到 web 服务以立即处理(建议异步模式)吗?您是否需要完成一个 Web 服务调用才能完成另一个(建议进行中)?
  • 感谢您的更新:您能否将所有城市发送到您的上一个网络服务(甚至不发送任何服务)并立即处理该请求?
  • 另一个问题:谁创建了该网络服务?是你建造的,还是另一家公司的其他人建造的?
  • 是的。显然,我检查了所有具有该选定城市名称的城市航班。所以。其遍布全球的 4413 个城市。所以它需要这么多时间。雅尔。当我用 10 个国家检查它时,它需要 45 秒。所以猜。发往4413个国家需要多少时间。
  • 是的。我将使用客户端网站在我的网站中构建此功能。

标签: c# .net web-services


【解决方案1】:

缓存城市列表, 一周内不会改变。

【讨论】:

  • 至少您可以通过将它们存储在共享/静态变量中来进行一次调用。或在客户端的 xml 中。当您的应用第一次运行时,您可以拨打电话并缓存它们。
【解决方案2】:

如果您可以访问 Web 服务(= 您是它的开发者)和使用它的客户端,您应该优化它(或制作一个额外的功能),以便您可以将 4000 个查询中的所有数据放入一次调用以避免连接/调用开销。

如果网络服务不是您的,您应该查看服务器是否支持keep alive,因为这样您就可以在同一连接上发送多个 HTTP 请求,而无需每次都重新连接。

这两个都假设您在同一服务器上调用具有不同值的相同方法。

【讨论】:

    【解决方案3】:

    我不确定我是否完全理解您的情况。但是,您应该在应用程序中简单地缓存机场/城市列表。您可以每天更新缓存或其他东西以确保它是新鲜的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多