오랫동안 실행하는 ASP.NET 페이지에 대해 클라이언트 브라우저에 진행률을 표시하는 방법

이 페이지에서

모두 확대 | 모두 축소

소개
이 문서에서는 오랫동안 실행하는 Microsoft ASP.NET 페이지에 대해 클라이언트 브라우저에 진행률을 표시하는 방법을 단계별로 설명합니다...

이 문서에서는 오랫동안 실행하는 Microsoft ASP.NET 페이지에 대해 클라이언트 브라우저에 진행률을 표시하는 방법을 단계별로 설명합니다. 페이지가 로드될 때까지 다음 JavaScript 프로시저를 호출할 수 있습니다. 이렇게 하면 페이지를 로드 중인지, 브라우저에서 페이지를 여는 데 아무런 문제가 없는지 확인할 수 있습니다.
  • 페이지에 서버 컨트롤이 나타날 때까지 StartShowWaitShowWait 함수는 클라이언트 브라우저에 "로드 중..." 텍스트를 표시합니다.
  • 페이지에 컨트롤이 나타나면 HideWait 함수는 이 텍스트를 숨깁니다.

요구 사항

이 문서에서는 사용자가 다음 내용을 잘 알고 있는 것으로 가정합니다.
  • ASP.NET 프로그래밍
  • Microsoft Visual Basic .NET 또는 Microsoft Visual C# .NET
  • JavaScript 프로그래밍
다음은 권장되는 하드웨어, 소프트웨어 및 네트워크 인프라와 필요한 서비스 팩 목록입니다.
  • Microsoft 인터넷 정보 서비스
  • Microsoft Visual Studio .NET
  • Microsoft .NET Framework

서버 컨트롤이 있는 ASP.NET 응용 프로그램 만들기

  1. Visual Studio .NET을 시작합니다.
  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 누릅니다.
  3. 새 프로젝트 대화 상자의 프로젝트 형식에서 Visual C# 프로젝트 또는 Visual Basic 프로젝트를 누릅니다.
  4. 템플릿에서 ASP.NET 웹 응용 프로그램을 누릅니다. 기본적으로 WebForm1.aspx 페이지가 만들어집니다.
  5. WebForm1.aspx 페이지에 TextBox 컨트롤이나 Button 컨트롤을 추가합니다.

    참고 이 컨트롤을 추가하면 해당 페이지가 로드될 때 컨트롤이 표시됩니다.

JavaScript 함수 선언 및 호출

ASP.NET 페이지는 순차적으로 처리되지 않으므로 출력 스트림에 컨트롤이 나타나지 않습니다. 하지만 Response.Write 함수는 출력 스트림에 데이터를 직접 출력합니다.
  1. WebForm1.aspx 페이지를 마우스 오른쪽 단추로 누른 다음 코드 보기를 누릅니다. WebForm1.aspx.cs 또는 WebForm1.aspx.vb 파일의 선언 섹션에 아래 코드를 추가합니다.

    Visual C# .NET 코드
    using System.Threading;
    Visual Basic .NET 코드
    Imports System.Threading
  2. Page_Load 이벤트 프로시저에 아래 코드를 추가합니다.

    Visual C# .NET 코드
    Response.Write("<div id='mydiv' >");
    Response.Write("_");
    Response.Write("</div>");
    Response.Write("<script>mydiv.innerText = '';</script>");
    
    Visual Basic .NET 코드
    Response.Write("<div id='mydiv' >")
    Response.Write("_")
    Response.Write("</div>")
    Response.Write("<script>mydiv.innerText = '';</script>")
  3. 다음과 같이 StartShowWait, ShowWaitHideWait라는 JavaScript 함수를 사용하여 클라이언트 브라우저에 페이지가 로드될 때까지 출력 스트림에 텍스트를 씁니다.
    • ShowWait 함수는 <DIV> 요소의 텍스트 값을 "로드 중"과 10개의 마침표("..........")로 설정합니다.
    • StartShowWait 함수는 1초마다 ShowWait 함수를 호출하여 브라우저에 <DIV> 요소가 표시되도록 합니다.
    • HideWait 함수는 브라우저에 <DIV> 요소가 보이지 않도록 숨깁니다.
    StartShowWait 함수를 호출하는 문을 작성한 다음 Response.Flush 메서드를 사용하여 <DIV> 요소의 텍스트 값을 클라이언트에게 보냅니다. 페이지 처리가 완료되고 클라이언트에게 해당 페이지가 보내지면 HideWait 함수가 호출됩니다. 이 함수는 본문 onload 이벤트에서도 호출됩니다.

    페이지에 컨트롤이 로드될 때까지 클라이언트 브라우저에 "로드 중" 텍스트와 10개의 마침표("..........")를 표시한 다음 브라우저 창에서 컨트롤이 렌더링될 때 이 텍스트를 숨기려면 다음과 같이 하십시오.
    1. Webform1.aspx.cs 또는 Webform1.aspx.vb 파일의 Page_Load 이벤트 프로시저에 아래 코드를 추가합니다.

      Visual C# .NET 코드
      Response.Write("<script language=javascript>;");
      Response.Write("var dots = 0;var dotmax = 10;function ShowWait()");
      Response.Write("{var output; output = 'Loading';dots++;if(dots>=dotmax)dots=1;");
      Response.Write("for(var x = 0;x < dots;x++){output += '.';}mydiv.innerText =  output;}");
      Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; 
      window.setInterval('ShowWait()',1000);}");
      Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';window.clearInterval();}");
      Response.Write("StartShowWait();</script>");
      Response.Flush();
      Thread.Sleep(10000) ;
      Visual Basic .NET 코드
      Response.Write("<script language=javascript>;")
      Response.Write("var dots = 0;var dotmax = 10;function ShowWait()")
      Response.Write("{var output; output = 'Loading';dots++;if(dots>=dotmax)dots=1;")
      Response.Write("for(var x = 0;x < dots;x++){output += '.';}mydiv.innerText =  output;}")
      Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; 
      window.setInterval('ShowWait()',1000);}")
      Response.Write("function HideWait(){mydiv.style.visibility = 
      'hidden';window.clearInterval();}")
      Response.Write("StartShowWait();</script>")
      Response.Flush()
      Thread.Sleep(10000)
    2. WebForm1.aspx 페이지를 HTML 코드 편집기로 전환한 다음 <HEAD> 태그 안에 아래 코드를 추가합니다.
      <script>
      HideWait();
      </script>
  4. 디버그 메뉴에서 시작을 눌러 응용 프로그램을 실행합니다.
참고 이 코드는 Microsoft Internet Explorer에서는 작동하지만 Netscape Navigator에서는 작동하지 않습니다.

참조
자세한 내용은 다음 Microsoft Developer Network(MSDN) 웹 사이트를 방문하십시오. http://msdn.microsof...

자세한 내용은 다음 Microsoft Developer Network(MSDN) 웹 사이트를 방문하십시오.
http://msdn.microsoft.com/library/default.asp?url=/library/kor/vbcon/html/vbconIntroductionToWebForms.asp (http://msdn.microsoft.com/library/default.asp?url=/library/kor/vbcon/html/vbconIntroductionToWebForms.asp)

http://msdn.microsoft.com/library/default.asp?url=/library/kor/vbcon/html/vbconWebFormsPageProcessingStages.asp (http://msdn.microsoft.com/library/default.asp?url=/library/kor/vbcon/html/vbconWebFormsPageProcessingStages.asp)




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx) 에 참여하시기 바랍니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
키워드: 
kbwebbrowser kbwebforms kbscript kbhowtomaster KB837375