AJAX 最近在网上下载了一个AJAX的DLL,使用了一下,有一些感受: 使用AJAX的确可以避免页面的刷新实现浏览器/客户端的页面交互,尤其是进行数据库数据查询,一些需要在服务器处理的业务逻辑时尤为好用,不过用了一段时间,发觉这东西入门比较简单,但是深入的使用还是很困难。 Ajax技术实质上是一种异步的浏览器请求/服务端响应的技术,很早就出来了,但是直到前不久才被广而使用,这可能是Google的功劳。使用Ajax可以带来很好的客户体验,大量的减少网络流量,降低服务端的压力,总总好处,使我们迫切的想用一下,但是我研究了这么多天,还是没研究明白。 Ajax.dll是对Ajax技术的一个封装, http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx 可以得到其技术的介绍和下载。 Ajax.dll使用入门: 首先,在C#Web窗体应用程序中添加对Ajax.dll的引用; 在WebConfig.config中的<system.web>节点下添加以下内容: <httpHandlers> <!-- Register the ajax handler --> <add verb="POST,GET" path="AjaxPro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro" /> </httpHandlers> 上面的内容实际上是增加Ajax类对http请求的响应,ajax会拦截来自浏览器的请求,并根据请求做响应。 在页面的代码中添加ajax对类的注册: private void Page_Load(object sender, System.EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(DataAccess)); // DataAccess是页面类的类名 } 再添加用ajax实现的方法,这里举一个简单的例子: [AjaxPro.AjaxMethod] public string GetAjax() { return “这是ajax返回的内容!”; } 在页面的html中,添加对ajax方法的调用: function getajax() { WebClass. DataAccess. GetAjax(getajaxcallback);;//WebClass是页面类的命名空间,getajaxcallback是方法调用后的回调,如果方法GetAjax需要送入参数,请按顺序放在这个回调函数对象的前面,如:WebClass. DataAccess. GetAjax(par1,par2,getajaxcallback); } //回调方法 function getajaxcallback(res){ alert(res.value);}//调用方法返回的结果在res的value中 很简单。 但我在使用中发现一个问题,就是在服务端的方法中不能访问服务端控件,也不能访问类似于Seesion之类的变量,但服务端静态变量却可以访问,郁闷ing。。。 07-10-31添加: 如果要访问Seesion,需要改变委托属性[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]

评论