跳出封装剖析ASP.NET脚本回调的原理(2)
点击次数:26 次 发布日期:2008-11-26 12:25:19 作者:源代码网
|
源代码网推荐 源代码网推荐 在运行的页面上点击那个多选框就会显示 “___I call Server is succeed.___”。这个到底是如果执行的呢?其实只要在这个页面上点击“查看源代码”就可以了,这里隐藏着一个小秘密,在页面上自动生成了三段脚本块,一个是__doPostback这是一个用来处理服务器控件事件回发的,另外一个是我们刚才使用ClientScript注册的CallSerer方法,还有一个外部脚本的链接标记,这个就是关键所在,看它连接的URL指向是: 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 <script src="http://www.zzchn.com/TechTest/WebResource.axd?d=DE9YrizlDDq8OUlo_3rQgA2&t=632919546726295408" type="text/javascript"></script> 源代码网推荐 源代码网推荐 按照上面SRC指示的地址打开地址, 可以得到一个WebResource.axd的文件(把连接地址填到迅雷之类的下载工具里面就可以下载到了),打开就可以看到这个文件里面其实就是一些Javascript代码: 源代码网推荐 源代码网推荐 try 源代码网推荐 { 源代码网推荐 xmlRequest = new XMLHttpRequest(); 源代码网推荐 } 源代码网推荐 catch(e) 源代码网推荐 { 源代码网推荐 try 源代码网推荐 { 源代码网推荐 xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); 源代码网推荐 } 源代码网推荐 catch(e) 源代码网推荐 { 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 好眼熟的代码啊! 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 if (!useAsync) 源代码网推荐 { 源代码网推荐 if (__synchronousCallBackIndex != -1) 源代码网推荐 { 源代码网推荐 __pendingCallbacks[__synchronousCallBackIndex] = null; 源代码网推荐 } 源代码网推荐 __synchronousCallBackIndex = callbackIndex; 源代码网推荐 } 源代码网推荐 源代码网推荐 这个里面的?这不就是处理Page.ClientScript.GetCallbackEventReference方法中的异步调用选项的吗? 源代码网推荐 源代码网推荐 里面都是多多的有用代码,本人研究中....................... 源代码网推荐 源代码网推荐 除了这些里面还有很多方法,说白了就是一个很简单的Ajax框架的封装,有处理控件事件的有处理回发请求的,我们可以在这个基础上做另外一些封装,这样就可以直接封装成简单的.NET的Ajax控件,作为开发中的对.NET的一个轻量级解决方案。 源代码网推荐 其实就是Java、.NET亦或是PHP技术,都是在服务器端对于HTTP的高级封装,就像很早以前我们使用的CGI技术,而现在的Web的技术封装的更为高级了一些,而了解到了.NET的内部运行机制,我们可以脱离一些限制,自己重写一部分页面或控件,来构建自己的Ajax开发环境。 源代码网推荐 本人原来是也是个控件工,我觉得封装是大工厂时代必须的一种技术,但是程序员还是要多的追根究底,真正的了解到程序运行背后的内容这样才能更好的开发出高质量的程序。 源代码网推荐 源代码网推荐 http://www.cnblogs.com/Jaffa/archive/2006/09/01/492303.html 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
