2011-08-29 2 views
4

웹 응용 프로그램에서 웹 서버의 특정 매개 변수로 프로세스를 시작하고 완료 될 때까지 텍스트 영역의 프로세스 출력을 계속 표시 할 수 있기를 원합니다. Javascript로 어떻게이 작업을 수행 할 수 있습니까? ASP.NET MVC 3과 함께 jQuery를 사용하고 있습니다.자바 스크립트에서 서버 측 프로세스를 시작하고 완료 될 때까지 출력을 모니터링하는 방법은 무엇입니까?

+0

HTTP로 수행되는 "javascript"로는이 작업을 수행 할 수 없습니다. – Raynos

+0

@Raynos HTTP로 클라이언트보기에서 동적 업데이트를 수행 하시겠습니까? : P – aknuds1

+0

서버로 HTTP 요청을 만들어 프로세스를 시작한 다음 추가 HTTP 요청을 만들어 데이터를 추출합니다. 원하는대로 렌더링 할 수 있습니다. – Raynos

답변

2

난 당신이 중 일부를 사용 할 필요가 있다고 생각 새로운 물건이 나옵니다. 자세한 내용은 다음을 참조하십시오 Node.js according to Scott Hanselman

SignalR according to Scott Hanselman, 그것은 새로운, 아직도 이해가 개발하는 모든 것을 가졌어요. 그러나 이런 종류의 개발이 진행되는 것처럼 보입니다.

+0

SignalR은 ASP.NET MVC 용 Comet 구현입니다. 맞습니까? 제 경우에 Node.js가 주신 내용은 무엇입니까? 서버 측에서 Javascript를 실행할 수 있도록 지금까지만 seded 했습니까? – aknuds1

+0

나는 * signalR을 실행할 수 있다고 생각하지만 여전히 자신을 읽고있다. 전문가는 아니다. 죄송합니다. 그것은 당신이 필요로하는 것과 같은 소리입니다 ... – awrigley

+0

그것은 Ajax에 대한 더 나은 대안처럼 보입니다, 감사합니다! 나는 내일 그것을 볼 것 같아. – aknuds1

1

정기적 인 시간 간격으로 ajax 게시 (또는 가져 오기)를 서버 측에 보내고 프로세스 상태를 얻어야합니다.

$.get("controler/ActionToReturnStatusView", null, 
    function(data){ 
    alert("status " + data); 
    }); 
4

당신은이 액션 메소드와 함께이 작업을 수행 할 수 있습니다 자바 스크립트 타이머

[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

혜성 프로그래밍을 사용할 수 있습니다. HTML5에서 지원되는 웹 작업자를 시도 할 수 있습니다.

+0

아, 나는 웹 노동자에 대해 잊어 버렸습니다. 고마워, 조사 할만한 가치가 있을지도 모른다. 나는 혜성이 요즘 갈 길이라는 친구의 말을 듣는다. – aknuds1

관련 문제