我的最终需要是在 Web API 页面上呈现一些报告(SQL Server 存储过程的结果)。
挑战在于返回这些数据的存储过程非常慢——有时需要几分钟才能运行。没有一个用户在他们的右(或左)头脑中会发现这种看似无休止的延迟是可以接受的,因此我想知道是否有一种方法可以只将第一页(比如 40 或 50 行数据)作为“奶嘴”,而其余的则在后续页面上呈现“幕后”。
我知道以这种方式呈现数据(一次一页)很常见,但实际上是否可以以这种方式“切片”存储过程以加快速度,即不改变存储过程本身 -只是来自 Web API 应用程序中的 C#(或 Javascript)?
我能想到的唯一其他可行的选择(以及它是否可行还有待商榷)是将已保存为 .xlsx(或 .csv)文件的预运行报告存储到服务器,在那里可以从Web API 应用程序和转换/按摩以显示在页面上。这需要将文件从客户端实用程序发送到服务器计算机(!),并可能在服务器上使用 Excel 互操作(!)。
这个无赖的最后一个避难所就是在存储过程运行时向用户展示一个跳舞的熊玩杂耍小猫或其他东西的 .gif 文件。
更新
两个答案都很好,而且作为一个落后者(失败者的支持者),我选择了得分较少的猫。
在这两只猫的启发下,我想我会做的是在创建每个 Excel 报告时向我的 Web API 应用程序发送一条“消息”,以将该数据(通过调用相同的 SP)存储在服务器上的一个表中. 然后,当用户浏览到提供的链接时,报告数据将可供用户使用。当他们实际这样做时(通常至少在几分钟后),表中将填充来自 SP 的数据,并且随后的页面呈现最多应该是几秒钟而不是几分钟。