环境:ASP.NET,C#如何向客户端(web)显示巨大进程的状态
我在写一个web程序,将12个表导出到另一个数据库。当用户点击“导出”按钮时,导出过程就会开始。事情是,我喜欢向客户展示一些消息,例如“准备......,删除旧记录......,导出...,导出已完成”。
但现在,一旦12个表完成,它就会显示所有状态。
请指导我如何做到这一点。
环境:ASP.NET,C#如何向客户端(web)显示巨大进程的状态
我在写一个web程序,将12个表导出到另一个数据库。当用户点击“导出”按钮时,导出过程就会开始。事情是,我喜欢向客户展示一些消息,例如“准备......,删除旧记录......,导出...,导出已完成”。
但现在,一旦12个表完成,它就会显示所有状态。
请指导我如何做到这一点。
试试这个
把这个C# 和每个过程调用ajavascript功能
Page.RegisterClientScriptBlock( “1”, “警报( '添加到表,现在')”);
做一个漫长的过程一样,这是一个网页上可能不是一个好主意,你将需要改变页面等
超时设置,而建立一个Windows服务,做所有的工作。然后,您可以使用页面初始化该过程。该服务可以更新页面读取的某些状态。通过这种方式,页面的工作量很小,即启动进程并轮询状态更新。这可以通过简单的jquery/ajax调用完成。
使用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视图。