XSLT存档  

不及格的程序员-八神

 查看分类:  ASP.NET XML/XSLT JavaScripT   我的MSN空间Blog
 1 <script type="text/javascript" language="javascript">
 2 
 3             Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function (sender, args)
 4             {
 5                 window.ClearAllInpuTextField();
 6                 if (sender._activeElement.id == "btnPrint")
 7                 {
 8                     window.showOnloading("获取快递单号,打印处理中......");
 9                 }
10             });
11 
12             Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
13 
14             function EndRequestHandler(sender, args)
15             {
16                 var prm = Sys.WebForms.PageRequestManager.getInstance();
17                 if (sender._request == null)
18                 {
19                     window.removeload();
20                 }
21                 if (args.get_error() != undefined)
22                 {
23                     var errorMessage;
24                     if (args.get_response().get_statusCode() == '200')
25                     {
26                         errorMessage = args.get_error().message;
27                     }
28                     else
29                     {
30                         // Error occurred somewhere other than the server page.
31                         errorMessage = 'An unspecified error occurred. ';
32                     }
33                     args.set_errorHandled(true);
34                     alert(errorMessage);
35                 }
36             }
37     </script>

在更新面板中正常的按钮事件中, 点击开发触发网络请求.beginRequest被触发, 当服务器端返回响应数据时,endRequest被触发. 这是正常的流程.

还有另一种情况发生, 在EndRequest函数中脚本触发了另一次网络请求,这时 beginRequest 被触发, 网络请求开始的同时,endRequest随后也会被触发,但是网络是Pending状态.

也就是说sender._request 请求对象不为空,在请求中,之后服务器返回数据,endRequest又被真正触发,这时 request为null, 也就是

Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()为false.
posted on 2017-08-02 09:33  不及格的程序员-八神  阅读(210)  评论(0编辑  收藏  举报