http://authors.aspalliance.com/aldotnet/examples/plediagram.htm
Use the following key for the events below:
Black - every time page is processed
Red - only if the request is transacted
Green - only on postback
Blue - only if tracing is enabled
| Begin Transaction (only when transactions are enabled for the page) | ||
| | Begin Transaction | ProcessRequestTransacted() |
| |
| TransactedCallback() on -------------------- Process Request Main -------------------- (described below) Transactions.InvokeTransacted -- parts of the request that need to be done under transacted context |
| | ||
| Process Request Main (every page, this is the main execution path) | ||
| | Init | InitRecursive() Raise OnInit (recursive) Begin tracking viewstate |
| | LoadViewState | LoadPageViewState() LoadPageStateFromPersistenceMedium() |
| | ProcessPostData1 | ProcessPostData(_requestValueCollection, true /* BeforeLoad */); Hand postback data to the controls that exist before Page_Load Page.Validate() |
| | Load | LoadRecursive(); Fire OnLoad() (recursive) |
| | ProcessPostData2 | ProcessPostData(_leftoverPostData, false /* BeforeLoad */); Hand postback data to controls added in Load (using LoadControl, for example) |
| | Raise ChangedEvents | RaiseChangedEvents() RaisePostDataChangedEvent() on each control with postback data that is not an IPostBackEventHandler |
| | Raise PostBackEvent | RaisePostBackEvent(_requestValueCollection) RaisePostBackEvent() on the control that caused the postback |
| | PreRender | PreRenderRecursive() if Page.Visible EnsureChildControls() -- creates controls if they haven't already been created by databinding Fire OnPreRender (recursive) |
| | Build Trace Tree | BuildProfileTree("ROOT", EnableViewState) |
| | SaveViewState | SavePageViewState() Save state recursively for the page and it's controls |
| | Render | RenderControl(CreateHtmlTextWriter(Response.Output)) if Page.Visible Render() (recursive) |
| | ||
| Finish Transaction (only when transactions are enabled for the page) | ||
| | End Transaction | Fire OnAbortTransaction() or OnCommitTransaction() |
| | ||
| End Trace (only when Tracing is enabled) | ||
| | Trace.EndRequest | if PageOutput Trace.Render |
| | ||
| Process Request Cleanup (every request) * Set Request and Response to null | ||
| | UnloadRecursive | UnloadRecursive() Fire OnUnload() (recursive) Dispose() |
No comments:
Post a Comment