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