javascript - 在 Javascript 中,如何启动服务器端进程并监视其输出直到完成?

标签 javascript jquery asp.net-mvc asp.net-mvc-3 jquery-ui

在我的 web 应用程序中,我希望能够在 web 服务器上启动一个带有特定参数的进程,并在文本区域中持续显示该进程的输出,直到它完成。我如何使用 Javascript 完成此操作?我将 jQuery 与 ASP.NET MVC 3 一起使用。

最佳答案

您可以使用 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);
        }
    });
}

关于javascript - 在 Javascript 中,如何启动服务器端进程并监视其输出直到完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231946/

相关文章:

javascript location href 不适用于 jquery ajax post

javascript - 可在 xul 应用程序中使用的 mongodb 的纯 javascript 驱动程序

javascript - 在 Safari 上正确使用 Modernizr.prefixed 进行过渡和转换

javascript - 如何使用 javascript 检查剑道网格是否包含特定项目

javascript - JavaScript对象未销毁?

javascript - 使用 jquery 访问 iframe 的 <table>

c# - 保留数据库中的空字符串

c# - ASP.NET MVC 使用 JavaScript 通知重定向

javascript - 如何禁用鼠标中键单击超链接在新选项卡或新窗口中打开?

javascript - 使用 moment.js 时 AngularJS 表单上的默认日期存在问题