这并不是一幅客户端生命周期的示意图。因为我要指出问题是如何实现的,因此需要表现的是异步刷新过程中的一些细节。 请注意图中橙色的箭头,它代表了异步操作中的等待实现,它们是唯一可能造成同步问题的地方。过程中其余部分不会被中断,这是语言特性决定的。
图中深蓝色的三个部分导致了同步问题的发生。如果我说,这些部分的本意是为了避免问题的发生,您是否会觉得惊讶呢?让我们通过分析相关实现来看一下这三个关键步骤是如何工作的:
实现 function Sys$WebForms$PageRequestManager 网学推荐免费论文原创论文文章排行榜
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn]
您电脑的分辨率是
像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 { // // prepare the request object var request = new Sys.WebRequest(); // // initialize request var handler = this._get_eventHandlerList().getHandler("initializeRequest"); // // Step 1 - 1: abort the existing async postback this.abortPostBack(); // Step 1 - 3: replace the request object this._request = request; // invoke the request request.invoke(); // } function Sys$WebForms$PageRequestManager$abortPostBack() { if (!this._processingRequest && this._request) { this._request.get_executor().abort(); // Step 1 - 2: clear the request object this._request = null; } } function Sys$WebForms$PageRequestManager 网学推荐免费论文原创论文文章排行榜
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn]
您电脑的分辨率是
像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 { this._processingRequest = true; // // Step 2: validate the request if (!this._request || sender.get_webRequest() !== this._request) { return; } // // execute and load scripts scriptLoader.loadScripts(0, Function.createDelegate(this, this._scriptsLoadComplete), null, null); } function Sys$WebForms$PageRequestManager 网学推荐免费论文原创论文文章排行榜
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn]
您电脑的分辨率是
像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 { // // Page loaded this._pageLoaded(false); // Step 3 - 1: end postback this._endPostBack(null, this._response); // } function Sys$WebForms$PageRequestManager 网学推荐免费论文原创论文文章排行榜
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn]
您电脑的分辨率是
像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 { this._processingRequest = false; // Step 3 - 2: clear the request this._request = null; // } |
&