欢迎来到天天文库
浏览记录
ID:23073546
大小:51.50 KB
页数:5页
时间:2018-11-03
《面向.net程序开发人员的ajax技术平台策略集》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、面向.NET程序开发人员的Ajax技术平台策略集>>教育资源库 在这里我将试图考察一下目前.平台的下的Ajax框架,我也试图从中总结出来一种方法,使得你可以在众多基于.平台的Ajax框架和工具包中找到你所合适的一种,同时也希望你在考察、预研和使用这些流行的这些Ajax-的框架时,做得理性和有的放矢。 我想,文章的方法会给目前使用Ajax的.用户带来帮助,从而提高你在.平台下使用Ajax的体验。为什么这么说,因为最近我的一个客户(应该是一些客户)的研发主管对我说,我们对Atlas非常兴趣,想了解更多一些相关的内容和如何开始看待Atla
2、s,因为下个月会来一个Atlas的专家和我们交流。因为我知道这个主管手上掌握着一个Ajax架构的业务应用,目前在考虑从.v1.1迁移到.v2.0,Atlas能在怎样的程度上帮忙他或他的Team?我没有说太多,因为心里我有些吃惊,目前的他们的架构应用Atlas可能并不是一个明智的选择,当然这个担心基于我目前对Atlas的理解。 我列举和讨论的Ajax-的框架和工具包括Atlas(JanCTP),Anthem.,MagicAjax.,Ajax.Professional和esGarrett列举的Ajax是最类似的,只不过那时你或我不知道这个
3、可以叫Ajax,只不过是现在的人误解了Ajax,Ajax成了一种技术,一种特性,而首先不是一种某种架构下agicAjax. 这是目前框架中版本号最小的一个Ajax-实现,许多人很喜欢它,甚至一见如故,但真的看过它的代码之后,我有些担忧。 MagicAjax.基于这样一种策略,即__doPostBack会提及整个的ASP.页面,这样会导致页面刷新,所以MagicAjax.使用AJAXCbo.DoPostCallBack做局部的提交,而每个AjaxPanel中的内容则对应客户端即时的HTML内容,因为在MagicAjax.中,客户端只用
4、执行eval(responseText)服务器端Rendered返回的HTML就可以了(很被动)。 由于DoPostCallBack会提交Vieent走正常的ASP.控件的处理过程,等控件Rendered之后,最终的HTML输出被传回客户端,然后被客户端的eval显示出来。 整个过程非常巧妙,这几乎是ASP.__doPostBack的"HookASP."版和加强版本。而HttpModel主要是为了解决Session和交叉提交,进行客户端Javascript的整理和注入,当然也是这里接收客户端的请求,在Application_EndR
5、equest中返回结果。剩下的代码都是处理控件在VSagicAjax.的一些不足和想法: 1、__doPostBack的加强版,适合于ASP.的高级用户使用 2、由于和ASP.的页面处理机制依赖非常密切,控件的默认动作发生变化则可能不工作,比如第三方的某个自定义控件; 3、依赖Vie. 目前是1.0版本,其设计理念是通过另外一个思路,遵循这样的理念--既然ASP.的各个标准控件没有实现提交功能,那么我可以产生一个提交的接口,然后继承原来的标准控件,然后再实现这个接口,这样每个控件都可以向服务器端单独进行提交。 每个控件的发生过
6、程类似MagicAjax.,Anthem.提供了各个控件Javascript端的提交函数-这等于也截取了__doPostBack,之后Anthem.还提供了完善的客户端的事件比如PostCallBack和PreCallBack这样的客户端事件,之后也将使用XMLHttpRequest模拟一个传统的页面提交请求到服务器端,服务器端生成页面实例,这个过程和MagicAjax.一样,最后是将Rendered的HTML在控件的Render()事件传回到客户端,客户端控件的innerHTML被赋值,动态更新。 和MagicAjax.不同的是,A
7、nthem.没有容器的概念,因为每个控件都增加了提交接口,所以可以单独的提交,所以单位是以一个控件为单位进行一次提交,Anthem.的花费更小些(但服务器端是类似的,因为整个ASP.页面的Pipeline都会进行)。 此外,Anthem.还有另外的功能,就是可以通过客户端调用页面中的方法并获得结果/数据,这种情况下,你将调用Anthem_InvokePageMethod方法,而不是Anthem.提供的默认各个控件的提交方法。这样Javascript的回调处理函数中的result.value将可以获得调用的服务端的某个方法(该方法以[A
8、nthem.Method]为标记)的执行结果,因为JavascriptPost的数据中有Page/MasterPage/Control了,那么服务器端很容易通过这个标识获得方法的地址,应用反射寻找[Anth
此文档下载收益归作者所有