完成了学AJAX的第一个程序。此聊天室程序在.NET环境下完成,具有最基本的聊天室功能,注册、登录、发言、显示在线用户列表... 在.NET中进行AJAX的应用非常轻松,简单地说就是修改web.config文件、添加ajax.dll引用、写服务器端代码并且加上[Ajax.AjaxMethod()]属性声明,表示这些服务器端代码是要被JS代码调用的方法、在Page_Load事件中注册JS代码调用的C#方法对应的类、写JS代码以及增加触发JS代码的事件。这几项完成了就可以正常地应用AJAX技术了.
1.web.config文件的修改:在 web.config文件中的“system.web”结点中增加“httpHandlers”结点,再在结点下增加一个子结点 add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory,Ajax" :
2.在Visual Studio.NET中添加引用的方法就是在解决方案资源管理器中的引用结点上右击MOUSE选择“添加引用”,然后在弹出的选项卡中点击浏览按钮,选择正确的ajax.dll的路径,确定就搞定。
3.像写一般的C#类和方法一样地写代码,只是要为C#方法加上[Ajax.AjaxMethod()]属性声明,表明这是一个AJAX方法.
4.在Page_Load中注册AJAX方法对应的类(即AJAX方法所在的类),方法是在Page_Load事件中增加下面的代码:Ajax.Utility.RegisterTypeForAjax(typeof(yourClass)); ,yourClass就是你的类名.只有先注册了类,JS代码才可以通过特定的方法去调用类的AJAX方法.
5.写JS代码也有一定的方法,我先拿一段代码:
function getOnLineUser_CallBack(response) --------------------------------------------b
{
var str=new String();
var uListStr=new String();
var uDiv=document.getElementById("uList");
if (response.error!=null)
{
alert(response.error);
}
str=response.value; uListStr=s tr.replace("|"," ");
uDiv.innerHTML=uListStr;
}
function getOnLine() ---------------------------------------------------------------a
{
main.getOnLineUser(getOnLineUser_CallBack);
}
这里有a,b两个function,其中a函数getOnLine()是被触发的JS代码(比如在button的onclick事件中等...),在这里getOnLine()中调用了一个带有getOnLineUser_CallBack参数的方法,这个地方就是在调用C#代码(服务器端),我上面说的特定的调用方法就是以“同名类.同名方法”的形式调用Server-Side代码(AJAX方法)。main.getOnLineUser()中有一个“固定的参数”,它是另一个JS函数的入口(也就是函数名),在这里是getOnLineUser_CallBack,说它是固定参数的含意是:即使AJAX方法没有参数这里也会有一个这样的参数,也就是说在JS中调用AJAX方法的时候会比对应的C#方法多一个参数即这个带有_CallBack后缀的函数名(这个函数名是自定义的,不一定要用_CallBack结尾,这只是一种习惯).CallBack函数有一个参数即response,它有一个value属性,这里边存放的就是从AJAX方法(C#方法)返回的值,可以是一般的简单类型也可以是DataSet,DataTable等类型。可以通过response.value来更新页面中的元素。另外response还有另一个属性error,里边存放的是出错信息,可以通过它是否为null来判断是否出错及输出错误信息。 通过这简单的几步就可以应用AJAX技术了... 开发环境:WinXPSP2,Visual Studio.NET2003,C#