将耗时的操作移出页面加载

时间:2010-08-31 18:22:06

标签: asp.net asp.net-ajax

我有一个aspx页面,我可以动态创建报告和图表。创建这些图表和报告需要花费大量时间,因此在创建完成之前会向用户显示空白屏幕。

您能否建议我可以将实际报告和图表创建代码与页面加载相关联的方式,以便我可以显示处理文本,然后在生成的图表或报告准备就绪后显示。

编辑: - 我想做这样的事情 - 在第一次请求时触发报告或图表创建并注册回叫以完成。然后,客户端可以每2-3秒轮询一次服务器,以检查报告的创建是否完整。我需要你帮助我如何实现这一点,或者你能想到更好的事情。

如果问题不够明确,请告诉我。

2 个答案:

答案 0 :(得分:1)

您的代码是在Page_Load中还是在页面生命周期中触发的任何其他事件中无关紧要。您可能需要一种Ajax类型的方法来绘制图表。我不确切知道你在做什么,但我已经使用SSRS ReportViewer控件取得了巨大的成功。

答案 1 :(得分:1)

快速解决方案是将逻辑移出Page_Load并进入其自己的功能。将<asp:UpdatePanel>添加到您希望显示图表的位置,并向您的页面添加<asp:Timer>控件。对于计时器的On_Tick事件,调用生成并显示图表的代码,禁用计时器(因此不会再次打勾)并在UpdatePanel上调用Update()

这将导致页面加载基本输出,然后计时器将启动AJAX调用以生成并显示图表。这不是最优雅的解决方案,但实施起来可能是最快的。