시작하기전에..
이 포스트는 http://ajax.asp.net/docs/overview/PageRequestManagerOverview.aspx 한글화 한것임을 알려드립니다.
(영어실력의 부재로 인해 매끄러운 해석이 나오지 않음을 이해해주시기 바랍니다. ^^;;)
Introduction
Microsoft AJAX 라이브러리의 PageRequestManager 클래스는 브라우저내에서 부분 페이지 업데이트를 관리합니다. 페이지가 ScriptManager 컨트롤과 하나이상의 UpdatePanel 컨트롤을 포함하고 있을때 페이지는 부분 페이지 렌더링에 의해 자동적으로 가능하게 됩니다. PageRequestManager 클래스는 클라이언트 스크립트로 부분 페이지 업데이트를 커스터마이즈하는 것을 가능하게 하는 프로퍼티, 메소드, 이벤트 등을 제공합니다. PageRequestManager 클래스는 서버페이지 이벤트 모델을 사용하는 방법과 같은 클라이언트 페이지 이벤트를 제공합니다.
이 글이 다음을 포함하고 있습니다.
Scenarios
ScriptManager 와 UpdatePanel 웹 서버컨트롤을 사용함으로서 부분 페이지 업데이트를 가능하게 합니다. 부분 페이지 업데이트는 클라이언트 스크립팅을 필요로 하지 않습니다. 그러나 다음과 같은 것을 하길 원할때 PageRequestManager 클래스와 클라이언트 스크립트를 사용할 수 있습니다.
- 어떻게 다수의 비동기적 포스트백을 동작시키는가를 컨트롤. 기본 비헤이비어는 우월한 마지막 포스트백입니다. PageRequestManager 클래스는 특정한 포스트백에 우선권을 주고 진행중인 다른것들에 취소를 가능하게 합니다.
- 마지막 비동기적 포스트백의 결과와 같은 수정또는 생성되는 페이지의 지역을 표시하는 눈에 보이는 신호나 다른 통지를 제공. 특히 어디서 다수의 UpdatePanel 컨트롤이 어디서 사용되었는지에 대한 사용자 경험을 개선시킬 수 있습니다.
- 비동기적 포스트백 동안 상태 메세지를 보여줌. 포스트백이 긴 시간의 처리시간이 걸린다면, 움직이는 이미지와 같은 프로그래스바를 보기를 원할 것입니다. 또한 포스트백을 취소할 수 있는 옵션을 사용자에게 제공할 수 있습니다.
- 부분 페이지 업데이트에서 커스텀 에러 메세지 핸들링을 제공. 비동기적 포스트백이 일어나는 동안 예기치 못한 에러가 발생하였다면, 클라이언트스크립트내에서 에러를 핸들할 수 있습니다.
- 비동기적 포스트백을 사용하는 객체의 기본적인 응답이나 요청에 접근.
Features
Microsotf AJAX 라이브러리의 부분 페이지 업데이트의 특징을 다음을 포함합니다.
- 부분 페이지 업데이트가 발생하는 동안 중요한 시간에 발생하는 클라이언트 페이지 라이프 싸이클 이벤트.
- 비동기적 포스트백동안 삭제, 수정, 생성되는 UpdatePanel 컨트롤에 대한 정보.
- 페이지가 비동기적 포스트백이 처리중인지 아닌지 클라이언트 스크립트에서 결정을 가능하게 하는 프로퍼티와 메소드. 또한 새로운 포스트백을 취소하거나 진행중인 비동기적 포스트백을 멈출수 있는 메소드를 사용할 수 있습니다.
- 부분 페이지 업데이트에 관여하지 않는 컨트롤에게 보내지는 서버 데이터에 대한 정보
Background
비동기적 포스트백에 의해 시작하는 부분 페이지 업데이트 동안, PageRequestManager 클래스는 어떻게 브라우저내에서 페이지 내용이 증가하게 업데이트되는지를 조정합니다. UpdatePanel 서버 컨트롤과 PageRequestManager 클라이언트 클래스는 부분 페이지 업데이트의 많은 복잡성을 추출합니다. PageRequestManager 클래스의 멤버와 클라이언트 스크리립트를 사용할때, 브라우저내의 부분 페이지 업데이트 비헤이비어를 커스터마이즈 할 수 있습니다.
Partial-Page Update Event Handling
포스트백과 비동기적 포스트백 두개의 페이지 처리동안, 커스텀 스크립트의 실행으로 DOM 이벤트를 핸들할 수 있습니다. 예를 들면, 브라우저가 페이지를 로드 또는 언로드 할때 스크립트를 실행할 수 있습니다.
그러나, DOM 이벤트는 모든 관련된 정보에 접근을 불가능하게 하고 비동기적 포스트백과 부분 페이지 업데이트가 발생하는 동안에 비헤이비어를 컨트롤하는 것을 불가능하게 합니다. 그러므로 PageRequestMAnager 클래스는 부분 페이지 업데이트를 커스터마이즈 가능하게 하는 다음의 이벤트를 제공합니다.
이벤트에 대한 더 많은 정보를 원하시면 Customizing Partial-Page Rendering with Client Scripting 를 참조하십시요.
Code Examples
다음의 예제는 비동기적 포스트백 이후에 페이지가 업데이트되어 질때의 UpdatePanel 컨트롤에 움직임을 주는 어떻게 PageRequestManager 클래스의 pageLoaded 이벤트가 사용되는가를 보여줍니다. 이 예제는 사용자들이 티켓 요청을 만드는 폼안에 이메일 주소를 넣고 날짜를 선택하게 해 줍니다. 비동기적 포스트백이 발생할때(UpdatePanel 컨트롤 외부의 링크에 의해 유발되는), 패널은 간단히 사용자에게 텍스트박스 안에 날짜 값을 입력하라는 알려주는 움직임을 보여줍니다. 페이지는 Calendar 컨트롤을 보여주는 팝업 윈도우를 포함합니다. 달력은 컨트롤의 Visible 프로퍼티를 사용하여 보여지거나 숨겨지게 됩니다. Calendar컨트롤은 UpdatePanel 컨트롤 안에 있기 때문에 모든 페이지는 달력컨트롤이 보여지거나 숨겨질때나 날짜가 선택되었을때 새로고침 할 수 없습니다.
How-to and Walkthrough Topics
- Working with PageRequestManager Events
- Animating ASP.NET UpdatePanel Controls
- Canceling an Asynchronous Postback
- Giving Precedence to a Specific Asynchronous Postback
- Customizing Error Handling for ASP.NET UpdatePanel Controls
Class Reference
다음 테이블의 항목은 PageRequestManager 클래스와 관련된 클래스들의 목록입니다.
| Class | Description |
|---|---|
| Sys.WebForms.PageRequestManager Class | 클라이언트 부분 페이지 업데이트를 관리하고 커스텀 클라이언트 스크릅트를 위한 멤버를 제공합니다. |
| Sys.WebForms.InitializeRequestEventArgs Class | 비동기적 요청이 시작되기 이전에 발생하는 initializeRequest 이벤트를 위한 이벤트 데이터를 제공합니다. |
| Sys.WebForms.BeginRequestEventArgs Class | 비동기적 포스트백이 시작된 후와 포스트백이 서버에 보내지기 전에 증가하는 beginRequest 이벤트를 위한 이벤트 데이터를 제공합니다. |
| Sys.WebForms.PageLoadingEventArgs Class | 비동기적 포스트백을 받은 응답 이후에 발생하는 pageLoading 이벤트를 위한 이벤트 데이터를 제공합니다. 그러나 페이지의 어떠한 콘텐츠도 업데이트 되기 이전입니다. 이 이벤트는 포스트백이 멈춰져 있거나 핸들할 수 없는 예외가 서버에서 처리중일때 던져지면 발생할 수 없습니다 |
| Sys.WebForms.PageLoadedEventArgs Class | 동기적 포스트백이나 비동기적 포스트백의 결과던지 페이지의 모든 내용이 새로고침되고 난 이후에 발생하는 pageLoaded 이벤트를 위한 이벤트 데이터를 제공합니다. 이 이벤트는 포스트백이 멈춰 있거나 핸들할 수 없는 예외가 서버에서 처리중일때 던져지면 발생할 수 없습니다. |
| Sys.WebForms.EndRequestEventArgs Class | 비동기적 포스트백이 끝난이후에 발생하는 endRequest 이벤트의 이벤트 데이터를 제공합니다. |
