0

我有一个从外部源读取数据的网页。检索数据可能需要一段时间。

我想知道是否有人可以给我一个关于在后台发生这种情况的最佳方法的想法。我希望页面出现并在最终显示数据的面板中显示“处理中”(或类似的东西)。

我想到了 BackgroundWorker 组件,或者可能是 AsyncPostBackTrigger ......不确定这些是否能解决我满意的问题。

那么......有没有人对解决问题的好方法有任何想法?

感谢您的建议!!

4

4 回答 4

1

我认为您正在寻找的是Ajax您希望以允许用户继续查看其他内容直到加载的方式从客户端发出请求。

.NET 有许多不同的技术来支持 AJAX 请求——从UpdatePanel控件到异步操作。您使用哪种技术取决于您正在尝试执行的操作的详细信息。

您也可以只使用jQuery之类的库向 Web 应用程序中的单独页面或服务发出异步内容请求。

于 2010-09-30T15:01:25.713 回答
0

我会使用 AJAX,将页面与处理消息一起发送给用户,然后使用 JavaScript(通过您的站点作为代理)从 XmlHttpRequest 请求外部源。

于 2010-09-30T15:02:40.917 回答
0

好吧,一种解决方案是asp:Timer在更新面板内的页面上粘贴一个*。让OnTick事件检索处理的当前状态(进度百分比、是否已完成、正在做什么等)。处理部分可以通过多种方式通知页面其进度;只是给它一个进度属性并在它运行时更新它是一种方法。请注意,OnTick事件不会进行处理;这只是为了弄清楚处理的状态。

*如果你把它放在更新面板之外,它会打勾 everyInterval而不是 every Timer.Interval + TimeToReloadUpdatePanel,如果TimeToReloadUpdatePanel >= Timer.Interval.

于 2010-09-30T15:04:00.173 回答
0

我的想法是网络查询应该很快,所以我会寻找提高查询性能的方法。如果每个查询的数据都相同,我会尝试缓存它。如果这不可行,我会使用 jQuery 发出异步请求并显示加载图像,直到查询完成。

于 2010-10-01T16:33:20.607 回答