【问题标题】:ASP.net 3.5 Webservice returns large datasetASP.net 3.5 Webservice 返回大型数据集
【发布时间】:2012-10-22 14:58:59
【问题描述】:

我知道有很多类似的问题,但所有解决方案都是我无法使用或不起作用的解决方案。问题的基础是我必须进行一个返回类型化数据集的 Web 服务调用。在某些情况下,此数据集可以有 30,000 行或更多行。所以我的问题是如何让页面响应更快,并在 Web 服务仍在下载数据集时加载所有内容?

请注意,通常我永远不会返回这么多数据,而是在服务器端进行分页,但是对此的要求确实限制了我的能力。如果需要,我可以让 Web 服务返回 JSon,但我当时的问题是如何将 JSON 数据恢复为 gridview 可以用来绑定数据的格式。我知道那里有一个外部库,但也有。

遗憾的是,我在这里的限制非常淫秽,但它们就是它们,我无法真正改变它们。

TIA -斯坦利

【问题讨论】:

  • 您是否考虑过使用 AJAX 调用 Web 服务并在之后更新页面?
  • 前端是 WinForms 还是 WebForms(或其他)?它使推荐的解决方案有所不同。
  • 不清楚。在 ASP.NET 中必须返回 30,000 行并且无法分页?从 Web 服务返回 JSON 会有什么帮助?
  • @Blam 这是我的问题。我不知道该往哪个方向走,我转向的每一个方向似乎都是同一个问题。 30k 条记录太多了,但请求仍然保持不变。我必须想办法让它在用户认为页面没有冻结并且仅显示旋转的 GIF 不是真正的解决方案的情况下工作。如果我能找到一种方法来加载页面的其余部分并让网格异步加载,那就太好了。但由于我无法弄清楚如何让 jquery 接收几个传递给 WS 的数据集,因此我无法弄清楚如何让这项工作发挥作用。
  • 澄清一下,这不是我从头开始构建的应用程序,而是运行良好的应用程序,除了速度。我的任务是让它运行得更快,并告诉我如果它没有坏就不要修理它。即使它是糟糕的代码,除非它让它运行得更快。我真的很想在这里做些什么,所以我试图在这个上找到一些新的东西。通常我会重写 WS 以在服务器上进行分页和排序,以便我们只返回页面上显示的结果。

标签: asp.net .net json web-services


【解决方案1】:

这种情况的一种常见方法是在数据返回时对其进行分页(以块的形式)。异步执行此操作(单独的线程)。您甚至可以只在两个块中执行此操作:前 1000 行,然后是其余的。它似乎对您的用户非常敏感。如果有什么方法要求用户过滤结果集,减少结果集,那将是理想的。

@Lostdreamer 是对的。使用 JQuery 进行两次 AJAX 调用。第一个调用获取前 1000 行,然后启动第二个调用(等等)。老实说,这只是模拟 HTTP 通常所做的事情(限制数据包大小并加载多个块)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多