이벤트 순서는 페이지에 사용되는 컨트롤 및 수행된 요청 유형(초기 요청, 포스트백 또는 비동기 포스트백)에 따라 달라집니다. 이 단원에서는 몇 가지 일반적인 시나리오에 대한 이벤트 순서에 대해 설명합니다.
초기 요청
페이지에 대한 초기 요청 동안에는 제한된 수의 클라이언트 이벤트가 발생합니다. 초기 요청에 대한 다음 시나리오를 가정합니다.
다음 클라이언트 이벤트가 아래 순서대로 발생합니다.
초기 요청이 서버로 전송됩니다.
클라이언트에서 응답을 수신합니다.
Application 인스턴스가 init 이벤트를 발생시킵니다.
Application 인스턴스가 load 이벤트를 발생시킵니다.
Application 인스턴스의 init 이벤트는 브라우저에서 페이지의 수명 동안 한 번만 발생합니다. 이후의 비동기 포스트백에 대해서는 이 이벤트가 발생하지 않습니다. 초기 요청 동안에는 PageRequestManager 이벤트가 발생하지 않습니다.
비동기 포스트백
비동기 포스트백은 일부 페이지 데이터를 서버로 보내고 응답을 받은 다음 페이지의 부분을 업데이트합니다. 비동기 포스트백에 대한 다음 시나리오를 가정합니다.
다음 클라이언트 이벤트가 아래 순서대로 발생합니다.
UpdatePanel 내부의 단추가 클릭되어 비동기 포스트백이 시작됩니다.
PageRequestManager 인스턴스가 initializeRequest 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 beginRequest 이벤트를 발생시킵니다.
요청이 서버로 전송됩니다.
클라이언트에서 응답을 수신합니다.
PageRequestManager 인스턴스가 pageLoading 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 pageLoaded 이벤트를 발생시킵니다.
Application 인스턴스가 load 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 endRequest 이벤트를 발생시킵니다.
자세한 내용은 PageRequestManager 이벤트 작업을 참조하십시오.
Application 인스턴스의 load 이벤트는 PageRequestManager pageLoaded 이벤트 후 해당 endRequest 이벤트 전에 발생합니다.
여러 비동기 포스트백
사용자가 서버나 브라우저에서 이전에 시작한 요청이 완전히 처리되기 전에 새 요청을 시작하는 경우 여러 비동기 포스트백이 발생할 수 있습니다. 여러 비동기 포스트백에 대한 다음 시나리오를 가정합니다.
다음 클라이언트 이벤트가 아래 순서대로 발생합니다.
UpdatePanel 내부의 단추가 클릭되어 비동기 포스트백이 시작됩니다.
PageRequestManager 인스턴스가 initializeRequest 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 beginRequest 이벤트를 발생시킵니다.
요청이 서버로 전송됩니다.
단추가 다시 클릭되어 두 번째 비동기 포스트백이 시작됩니다.
PageRequestManager 인스턴스가 두 번째 단추 클릭에 대한 initializeRequest 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 첫 번째 단추 클릭에 대한 endRequest 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 두 번째 단추 클릭에 대한 beginRequest 이벤트를 발생시킵니다.
두 번째 클릭으로 시작된 요청이 서버로 전송됩니다.
두 번째 클릭에 대한 응답이 수신됩니다.
PageRequestManager 인스턴스가 pageLoading 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 pageLoaded 이벤트를 발생시킵니다.
Application 인스턴스가 load 이벤트를 발생시킵니다.
PageRequestManager 인스턴스가 endRequest 이벤트를 발생시킵니다.
최근 비동기 포스트백의 우선 순위가 높은 것이 비동기 포스트백의 기본 동작입니다. 두 개의 비동기 포스트백이 순서대로 발생하고 브라우저에서 첫 번째 포스트백이 아직 처리되고 있는 경우에는 첫 번째 포스트백이 취소됩니다. 첫 번째 포스트백이 서버로 전송된 경우 서버는 두 번째 요청이 도착하면 이 요청을 처리하고 첫 번째 요청을 반환하지 않습니다. 특정 비동기 포스트백의 우선 순위가 높도록 설정하는 방법에 대한 자세한 내용은 특정 비동기 포스트백에 우선 순위 설정을 참조하십시오.
다른 페이지로 이동
사용자가 다른 페이지로 이동하면 현재 페이지가 브라우저에서 언로드되므로 unload 이벤트를 처리하여 리소스를 해제할 수 있습니다. 다른 페이지로 이동에 대한 다음 시나리오를 가정합니다.
다음 클라이언트 이벤트가 아래 순서대로 발생합니다.
새 페이지에 대한 요청이 시작됩니다.
브라우저에서 새 페이지에 대한 응답을 수신합니다.
Application 인스턴스가 unload 이벤트를 발생시킵니다.
새 페이지가 표시됩니다.
새 페이지에 대한 요청에 오류가 있는 경우 unload 이벤트는 발생하지만 새 페이지가 표시되지 않습니다.