2009-08-10 50 views
1

环境:ASP.NET,C#如何向客户端(web)显示巨大进程的状态

我在写一个web程序,将12个表导出到另一个数据库。当用户点击“导出”按钮时,导出过程就会开始。事情是,我喜欢向客户展示一些消息,例如“准备......,删除旧记录......,导出...,导出已完成”。

但现在,一旦12个表完成,它就会显示所有状态。

请指导我如何做到这一点。

回答

0

试试这个

把这个C# 和每个过程调用ajavascript功能

Page.RegisterClientScriptBlock( “1”, “警报( '添加到表,现在')”);

2

做一个漫长的过程一样,这是一个网页上可能不是一个好主意,你将需要改变页面等

超时设置,而建立一个Windows服务,做所有的工作。然后,您可以使用页面初始化该过程。该服务可以更新页面读取的某些状态。通过这种方式,页面的工作量很小,即启动进程并轮询状态更新。这可以通过简单的jquery/ajax调用完成。

0

使用javascript定时器来定期从状态页面或服务加载内容。

计时器是相当简单:

setTimeout('checkProcessStatus()', waitTime); 

更新本身取决于您选择高科技的 - 例如,如果使用MVC和jQuery:

function checkProcessStatus() { 
    //dynamically add the html from the status page to <div id="taskStatusPanel" 
    $('#taskStatusPanel').load('export/status/' + taskId); 

    //set timer to call this again 
    setTimeout('checkProcessStatus()', waitTime); 
} 

然后ExportController.Status行动将返回一个简单的显示当前状态的HTML视图。