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)]
评论