在我的Web应用程序中,我希望能够在Web服务器上启动具有某些参数的进程,并在文本区域中连续显示进程的输出,直到完成为止。如何使用Javascript完成此操作?我正在使用jQuery和ASP.NET MVC 3。
答案 0 :(得分:4)
您可以使用2种操作方法和javascript计时器
来完成此操作[HttpPost]
public JsonResult StartProcess()
{
StartTheMachine();
return new JsonResult() { Data = "Started" };
}
[HttpGet]
public JsonResult GetProcessUpdate()
{
return new JsonResult()
{
Data = GetUpdate(),
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
在你看来是这样的:
$.post("<%=Url.Action("StartProcess") %>", function(data) {
// do something with data "Started" and start timer
setTimeout(GetUpdate, 5000);
});
function GetUpdate()
{
$.get("<%=Url.Action("GetUpdate") %>", function(data) {
if (data.Complete) // or some way to tell it has finished
{
// do something with other data returned
}
else
{
// call again if not finished
setTimeout(GetUpdate, 5000);
}
});
}
答案 1 :(得分:2)
我认为你需要使用一些新的东西。详情请见:
SignalR according to Scott Hanselman
Node.js according to Scott Hanselman
话虽如此,它是全新的,我仍在理解中。但它看起来就像这种发展的方式。
答案 2 :(得分:1)
您需要定期向服务器端发送一个ajax帖子(或获取)并获取进程状态。
$.get("controler/ActionToReturnStatusView", null,
function(data){
alert("status " + data);
});
答案 3 :(得分:1)
可以使用彗星编程。 可以尝试HTML 5中支持的Web worker