分享
 
 
 

Asp.Net原理Version3.0_页面声明周期

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

asp.net原理Version1.0

Asp.Net原理Version2.0

相关源码

页面的PRocess方法

1//System.Web.UI.Page2privatevoidProcessRequest(boolincludeStagesBeforeAsyncPoint,boolincludeStagesAfterAsyncPoint)3{4if(includeStagesBeforeAsyncPoint)5{6//调用子类的方法(这是个虚方法),1,创建页面控件树7this.FrameworkInitialize();8base.ControlState =ControlState.FrameworkInitialized;9}10boolflag =this.Context.WorkerRequestisIIS7WorkerRequest;11try12{13try14{15if(this.IsTransacted)16{17this.ProcessRequestTransacted();18}19else20{21//页面声明周期的主要部分22this.ProcessRequestMain(includeStagesBeforeAsyncPoint, includeStagesAfterAsyncPoint);23}24if(includeStagesAfterAsyncPoint)25{26flag =false;27this.ProcessRequestEndTrace();28}29}30catch(ThreadAbortException)31{32try33{34if(flag)35{36this.ProcessRequestEndTrace();37}38}39catch40{41}42}43finally44{45if(includeStagesAfterAsyncPoint)46{47this.ProcessRequestCleanup();48}49}50}51catch52{53throw;54}55}

View Code

ProcessRequestMain方法

1//System.Web.UI.Page2privatevoidProcessRequestMain(boolincludeStagesBeforeAsyncPoint,boolincludeStagesAfterAsyncPoint)3{4try5{6HttpContext context =this.Context;7stringtext =null;8if(includeStagesBeforeAsyncPoint)9{10if(this.IsInAspCompatMode)11{12AspCompatapplicationStep.OnPageStartsessionObjects();13}14if(this.PageAdapter !=null)15{16this._requestValueCollection =this.PageAdapter.DeterminePostBackMode();17}18else19{20this._requestValueCollection =this.DeterminePostBackMode();21}22stringtext2 =string.Empty;23if(this.DetermineIsExportingWebPart())24{25if(!RuntimeConfig.GetAppConfig().WebParts.EnableExport)26{27thrownewInvalidOperationException(SR.GetString("WebPartExportHandler_DisabledExportHandler"));28}29text =this.Request.QueryString["webPart"];30if(string.IsNullOrEmpty(text))31{32thrownewInvalidOperationException(SR.GetString("WebPartExportHandler_InvalidArgument"));33}34if(string.Equals(this.Request.QueryString["scope"],"shared", StringComparison.OrdinalIgnoreCase))35{36this._pageFlags.Set(4);37}38stringtext3 =this.Request.QueryString["query"];39if(text3 ==null)40{41text3 =string.Empty;42}43this.Request.QueryStringText =text3;44context.Trace.IsEnabled =false;45}4647//2,确定IsCallback值48if(this._requestValueCollection !=null)49{50if(this._requestValueCollection["__VIEWSTATEENCRYPTED"] !=null)51{52this.ContainsEncryptedViewState =true;53}54text2 =this._requestValueCollection["__CALLBACKID"];55if(text2 !=null&&this._request.HttpVerb ==HttpVerb.POST)56{57this._isCallback =true;58}59else60{61if(!this.IsCrossPagePostBack)62{63VirtualPath virtualPath =null;64if(this._requestValueCollection["__PREVIOUSPAGE"] !=null)65{66try67{68virtualPath = VirtualPath.CreateNonRelativeAllowNull(Page.DecryptString(this._requestValueCollection["__PREVIOUSPAGE"]));69}70catch71{72this._pageFlags[8] =true;73}74if(virtualPath !=null&& virtualPath !=this.Request.CurrentExecutionFilePathObject)75{76this._pageFlags[8] =true;77this._previousPagePath =virtualPath;78}79}80}81}82}83if(this.MaintainScrollPositionOnPostBack)84{85this.LoadScrollPosition();86}87if(context.TraceIsEnabled)88{89this.Trace.Write("aspx.page","Begin PreInit");90}91if(EtwTrace.IsTraceEnabled(5,4))92{93EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_PRE_INIT_ENTER,this._context.WorkerRequest);94}9596//3.1初始化PreInit97this.PerformPreInit();98if(EtwTrace.IsTraceEnabled(5,4))99{100EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_PRE_INIT_LEAVE,this._context.WorkerRequest);101}102if(context.TraceIsEnabled)103{104this.Trace.Write("aspx.page","End PreInit");105}106if(context.TraceIsEnabled)107{108this.Trace.Write("aspx.page","Begin Init");109}110if(EtwTrace.IsTraceEnabled(5,4))111{112EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_INIT_ENTER,this._context.WorkerRequest);113}114//3.2递归初始化,因为要初始化树,所以用递归115this.InitRecursive(null);116if(EtwTrace.IsTraceEnabled(5,4))117{118EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_INIT_LEAVE,this._context.WorkerRequest);119}120if(context.TraceIsEnabled)121{122this.Trace.Write("aspx.page","End Init");123}124if(context.TraceIsEnabled)125{126this.Trace.Write("aspx.page","Begin InitComplete");127}128//3.3,初始化完成129this.OnInitComplete(EventArgs.Empty);130if(context.TraceIsEnabled)131{132this.Trace.Write("aspx.page","End InitComplete");133}134if(this.IsPostBack)135{136if(context.TraceIsEnabled)137{138this.Trace.Write("aspx.page","Begin LoadState");139}140if(EtwTrace.IsTraceEnabled(5,4))141{142EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_VIEWSTATE_ENTER,this._context.WorkerRequest);143}144//4.1,加载ViewState145this.LoadAllState();146if(EtwTrace.IsTraceEnabled(5,4))147{148EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_VIEWSTATE_LEAVE,this._context.WorkerRequest);149}150if(context.TraceIsEnabled)151{152this.Trace.Write("aspx.page","End LoadState");153this.Trace.Write("aspx.page","Begin ProcessPostData");154}155if(EtwTrace.IsTraceEnabled(5,4))156{157EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_POSTDATA_ENTER,this._context.WorkerRequest);158}159//4.2,处理回发数据160this.ProcessPostData(this._requestValueCollection,true);161if(EtwTrace.IsTraceEnabled(5,4))162{163EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_POSTDATA_LEAVE,this._context.WorkerRequest);164}165if(context.TraceIsEnabled)166{167this.Trace.Write("aspx.page","End ProcessPostData");168}169}170if(context.TraceIsEnabled)171{172this.Trace.Write("aspx.page","Begin PreLoad");173}174//5.1页面预加载175this.OnPreLoad(EventArgs.Empty);176if(context.TraceIsEnabled)177{178this.Trace.Write("aspx.page","End PreLoad");179}180if(context.TraceIsEnabled)181{182this.Trace.Write("aspx.page","Begin Load");183}184if(EtwTrace.IsTraceEnabled(5,4))185{186EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_ENTER,this._context.WorkerRequest);187}188//5.2页面递归加载189this.LoadRecursive();190if(EtwTrace.IsTraceEnabled(5,4))191{192EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_LEAVE,this._context.WorkerRequest);193}194if(context.TraceIsEnabled)195{196this.Trace.Write("aspx.page","End Load");197}198if(this.IsPostBack)199{200if(context.TraceIsEnabled)201{202this.Trace.Write("aspx.page","Begin ProcessPostData Second Try");203}204//5.3第二次尝试加载回发数据205this.ProcessPostData(this._leftoverPostData,false);206if(context.TraceIsEnabled)207{208this.Trace.Write("aspx.page","End ProcessPostData Second Try");209this.Trace.Write("aspx.page","Begin Raise ChangedEvents");210}211if(EtwTrace.IsTraceEnabled(5,4))212{213EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_POST_DATA_CHANGED_ENTER,this._context.WorkerRequest);214}215//6.1,触发Change事件216this.RaiseChangedEvents();217if(EtwTrace.IsTraceEnabled(5,4))218{219EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_POST_DATA_CHANGED_LEAVE,this._context.WorkerRequest);220}221if(context.TraceIsEnabled)222{223this.Trace.Write("aspx.page","End Raise ChangedEvents");224this.Trace.Write("aspx.page","Begin Raise PostBackEvent");225}226if(EtwTrace.IsTraceEnabled(5,4))227{228EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_RAISE_POSTBACK_ENTER,this._context.WorkerRequest);229}230//6.2,触发点击事件231this.RaisePostBackEvent(this._requestValueCollection);232if(EtwTrace.IsTraceEnabled(5,4))233{234EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_RAISE_POSTBACK_LEAVE,this._context.WorkerRequest);235}236if(context.TraceIsEnabled)237{238this.Trace.Write("aspx.page","End Raise PostBackEvent");239}240}241if(context.TraceIsEnabled)242{243this.Trace.Write("aspx.page","Begin LoadComplete");244}245//5.3,页面加载完成246this.OnLoadComplete(EventArgs.Empty);247if(context.TraceIsEnabled)248{249this.Trace.Write("aspx.page","End LoadComplete");250}251if(this.IsPostBack &&this.IsCallback)252{253this.PrepareCallback(text2);254}255else256{257if(!this.IsCrossPagePostBack)258{259if(context.TraceIsEnabled)260{261this.Trace.Write("aspx.page","Begin PreRender");262}263if(EtwTrace.IsTraceEnabled(5,4))264{265EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_PRE_RENDER_ENTER,this._context.WorkerRequest);266}267268//7,递归预渲染269this.PreRenderRecursiveInternal();270if(EtwTrace.IsTraceEnabled(5,4))271{272EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_PRE_RENDER_LEAVE,this._context.WorkerRequest);273}274if(context.TraceIsEnabled)275{276this.Trace.Write("aspx.page","End PreRender");277}278}279}280}281if(this._asyncInfo ==null||this._asyncInfo.CallerIsBlocking)282{283this.ExecuteRegisteredAsyncTasks();284}285this._request.ValidateRawUrl();286if(includeStagesAfterAsyncPoint)287{288if(this.IsCallback)289{290this.RenderCallback();291}292else293{294if(!this.IsCrossPagePostBack)295{296if(context.TraceIsEnabled)297{298this.Trace.Write("aspx.page","Begin PreRenderComplete");299}300this.PerformPreRenderComplete();301if(context.TraceIsEnabled)302{303this.Trace.Write("aspx.page","End PreRenderComplete");304}305if(context.TraceIsEnabled)306{307this.BuildPageProfileTree(this.EnableViewState);308this.Trace.Write("aspx.page","Begin SaveState");309}310if(EtwTrace.IsTraceEnabled(5,4))311{312EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_SAVE_VIEWSTATE_ENTER,this._context.WorkerRequest);313}314//8,保存页面状态到ViewState315this.SaveAllState();316if(EtwTrace.IsTraceEnabled(5,4))317{318EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_SAVE_VIEWSTATE_LEAVE,this._context.WorkerRequest);319}320if(context.TraceIsEnabled)321{322this.Trace.Write("aspx.page","End SaveState");323this.Trace.Write("aspx.page","Begin SaveStateComplete");324}325this.OnSaveStateComplete(EventArgs.Empty);326if(context.TraceIsEnabled)327{328this.Trace.Write("aspx.page","End SaveStateComplete");329this.Trace.Write("aspx.page","Begin Render");330}331if(EtwTrace.IsTraceEnabled(5,4))332{333EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_RENDER_ENTER,this._context.WorkerRequest);334}335if(text !=null)336{337this.ExportWebPart(text);338}339else340{341//9,渲染出HTML342this.RenderControl(this.CreateHtmlTextWriter(this.Response.Output));343}344if(EtwTrace.IsTraceEnabled(5,4))345{346EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_RENDER_LEAVE,this._context.WorkerRequest);347}348if(context.TraceIsEnabled)349{350this.Trace.Write("aspx.page","End Render");351}352this.CheckRemainingAsyncTasks(false);353}354}355}356}357catch(ThreadAbortException ex2)358{359HttpApplication.CancelModuleException ex = ex2.ExceptionStateasHttpApplication.CancelModuleException;360if(!includeStagesBeforeAsyncPoint || !includeStagesAfterAsyncPoint ||this._context.Handler !=this||this._context.ApplicationInstance ==null|| ex ==null||ex.Timeout)361{362this.CheckRemainingAsyncTasks(true);363throw;364}365this._context.ApplicationInstance.CompleteRequest();366Page.ThreadResetAbortWithAssert();367}368catch(ConfigurationException)369{370throw;371}372catch(Exception e)373{374PerfCounters.IncrementCounter(AppPerfCounter.ERRORS_DURING_REQUEST);375PerfCounters.IncrementCounter(AppPerfCounter.ERRORS_TOTAL);376if(!this.HandleError(e))377{378throw;379}380}381}

View Code

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有