深度解析ASP.NET2.0中的Callback机制callback的一般使用方法还算简单,直接参照
2006-08-14 16:36
766 查看
深度解析asp.net2.0中的callback机制callback的一般使用方法还算简单,直接参照
callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了。但是想要真正用好、用精,或者想开发一些基于callback机制的web组件,那么,就要先深入了解callback的实现机制了。在本文中,teddy将和您一起解析callback的整个调用、反馈机制,相信对于帮助您更好的使用callback,将能有一定的益处。
callback vs atlas
首先,谈谈atlas。很多朋友可能会觉得奇怪,已经有了callback,为什么又要出atlas呢?关于这个问题,atlas的作者怎么解释,我倒没有去调查。只不过从我个人对callback和atlas的使用感受来讲,觉得,callback作为一个接口和postback非常类似的实现,肯定是为了让用户类似使用postback来使用它。但是,它的这个类似postback的机制,应该说使用上还不是特别方便,也不易扩展,当然这是相比于其他的ajax框架实现来说的。因此,微软方面借鉴了许多的已有的ajax实现,如prototype,backbase以及ajax.net,并结合asp.net2.0的部分特有功能,发明了这样一个博采众长的ajax框架。基于atlas来开发ajax应用有多好,很难量化的来说,但至少不比其他的这些ajax框架来的差是肯定的,加上微软这个后台,以及像live.com这样的重量级站点的应用推广,其影响当然是值得期待的。
不过,这也不是说callback实现没一无是处了,作为程序员,我们需要有正确的态度,在正确的使用情形,使用最正确的技术。没有哪一个框架是万能的,是适合任何使用环境的;就像大家都在争论那个软件开发方法最好,cmmi,rup,xp,agile~~,其实,没有最好,最合适的才是最好的。我们最应该做的,是了解各种方案的原理和优缺点,从而,合理的使用正确的工具来解决实际问题。
begin from client script
我们都知道,凡是ajax,从底层来讲,无外乎两种实现机制:xmlhttp以及iframe。在ajax这个词获得广泛关注之前,其实,基于这两种底层实现的功能框架,或者基于这两种技术的无刷新效果实现就已经被广泛的使用了。当然,发展到今天,在使用接口方面,这些底层机制的细节往往被框架给隐藏了,使用接口变得越来越简单,用户只要调用这些简单接口,没有必要知道具体是怎么实现效果的了。
不过,这里我们既然是要解析callback的实现机制,那还是让我们从一个callback调用的客户端脚本调用开始,看看,微软是怎么实现这个callback机制的。
1、clientscript.getcallbackeventreference(...)
要激发一个callback,首先,当然需要在客户端本中发出一个调用。一个典型的调用语法如下:
<script language="javascript" type="text/javascript">
function any_script_functi c
{
<%= clientscript.getcallbackeventreference(this, "arg", "receiveserverdata", "c
}
</script>
clientscript.getcallbackeventreference(...)将根据传入的参数返回实际的回调脚本。这个函数有多个重载版本,因此,这些参数的含义,大家可以参考msdn。以具体的上面这段示例代码中的参数来说:
- this表示执行回调的的服务端控件是当前这个page,当前的page必须实现icallbackeventhandler接口,包括必须实现string getcallbackresult()和void raisecallbackevent(eventargument)这两个接口函数,这个参数也可以是指向某个web控件的引用,当然,这个空间也必须实现icallbackeventhandler接口;
- "arg"是将被传给raisecallbackevent的参数eventargument的值,可以使人以自定义格式的字符串;
- "receiveserverdata"是当回调成功之后,处理返回内容的客户端脚本函数的名称,这个函数必须存在于执行回调的页面,并且这个函数可以包含两个参数,例如:
<script type="text/javascript">
function receiveserverdata(result, c
{}
</script>
这两个参数,分别是回调的返回数据result,和原封不动被返回的我们激发回调时的这个c
- "c
callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了。但是想要真正用好、用精,或者想开发一些基于callback机制的web组件,那么,就要先深入了解callback的实现机制了。在本文中,teddy将和您一起解析callback的整个调用、反馈机制,相信对于帮助您更好的使用callback,将能有一定的益处。
callback vs atlas
首先,谈谈atlas。很多朋友可能会觉得奇怪,已经有了callback,为什么又要出atlas呢?关于这个问题,atlas的作者怎么解释,我倒没有去调查。只不过从我个人对callback和atlas的使用感受来讲,觉得,callback作为一个接口和postback非常类似的实现,肯定是为了让用户类似使用postback来使用它。但是,它的这个类似postback的机制,应该说使用上还不是特别方便,也不易扩展,当然这是相比于其他的ajax框架实现来说的。因此,微软方面借鉴了许多的已有的ajax实现,如prototype,backbase以及ajax.net,并结合asp.net2.0的部分特有功能,发明了这样一个博采众长的ajax框架。基于atlas来开发ajax应用有多好,很难量化的来说,但至少不比其他的这些ajax框架来的差是肯定的,加上微软这个后台,以及像live.com这样的重量级站点的应用推广,其影响当然是值得期待的。
不过,这也不是说callback实现没一无是处了,作为程序员,我们需要有正确的态度,在正确的使用情形,使用最正确的技术。没有哪一个框架是万能的,是适合任何使用环境的;就像大家都在争论那个软件开发方法最好,cmmi,rup,xp,agile~~,其实,没有最好,最合适的才是最好的。我们最应该做的,是了解各种方案的原理和优缺点,从而,合理的使用正确的工具来解决实际问题。
begin from client script
我们都知道,凡是ajax,从底层来讲,无外乎两种实现机制:xmlhttp以及iframe。在ajax这个词获得广泛关注之前,其实,基于这两种底层实现的功能框架,或者基于这两种技术的无刷新效果实现就已经被广泛的使用了。当然,发展到今天,在使用接口方面,这些底层机制的细节往往被框架给隐藏了,使用接口变得越来越简单,用户只要调用这些简单接口,没有必要知道具体是怎么实现效果的了。
不过,这里我们既然是要解析callback的实现机制,那还是让我们从一个callback调用的客户端脚本调用开始,看看,微软是怎么实现这个callback机制的。
1、clientscript.getcallbackeventreference(...)
要激发一个callback,首先,当然需要在客户端本中发出一个调用。一个典型的调用语法如下:
<script language="javascript" type="text/javascript">
function any_script_functi c
{
<%= clientscript.getcallbackeventreference(this, "arg", "receiveserverdata", "c
}
</script>
clientscript.getcallbackeventreference(...)将根据传入的参数返回实际的回调脚本。这个函数有多个重载版本,因此,这些参数的含义,大家可以参考msdn。以具体的上面这段示例代码中的参数来说:
- this表示执行回调的的服务端控件是当前这个page,当前的page必须实现icallbackeventhandler接口,包括必须实现string getcallbackresult()和void raisecallbackevent(eventargument)这两个接口函数,这个参数也可以是指向某个web控件的引用,当然,这个空间也必须实现icallbackeventhandler接口;
- "arg"是将被传给raisecallbackevent的参数eventargument的值,可以使人以自定义格式的字符串;
- "receiveserverdata"是当回调成功之后,处理返回内容的客户端脚本函数的名称,这个函数必须存在于执行回调的页面,并且这个函数可以包含两个参数,例如:
<script type="text/javascript">
function receiveserverdata(result, c
{}
</script>
这两个参数,分别是回调的返回数据result,和原封不动被返回的我们激发回调时的这个c
- "c
相关文章推荐
- 深度解析Asp.Net2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制(2009-02-19 15:16:57)(转载)
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制
- 深度解析ASP.NET2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制
- 深度解析Asp.Net2.0中的Callback机制
- 简单直接的方法解析JSON数据
- QT使用QJson生成解析,简单的JSON,复杂的Json使用方法
- 深度复制一个对象方法。利用反射机制,不使用Serialization,也不使用ICloneable接口
- 简单的做了一个评分控件,其实还算不上控件,只是用javascript做了一个效果,可以直接放在你的程序中使用。
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。