ajax入门体会[转]

来源:互联网 发布:ubuntu zip压缩 编辑:程序博客网 时间:2024/06/05 15:47

======================================================
注:本文源代码点此下载
======================================================

此文来自csdn的一篇帖子,感觉讲得比较简单易懂,适合初学者,所以拿来收藏

原文:http://topic.csdn.net/u/20080612/18/13fb478c-8cc3-48d6-a679-bc3e396751ed.html?seed=638985004

作者:z80_robin

注:以下为原文摘录,没有进行任何修改。如有问题,请到原贴咨询。

这篇文章我不会引用网上任何一篇文章的原话,全是自己的感受,相信会帮助不少想知道ajax是什么东西和怎么应用的人,因为我也是初学者,所以写的可能会有不对的,不对的地方希望老程序员们能指出来千万不要误人子弟,这也是我写这篇文章的另一个目的,好开始

注:我是使用asp.net的

ajax的长篇理论我不想说,什么全称,什么dom,xmlhttp什么的网上资料一大堆自己去查,我们了解一下就行。

[不用ajax的页面不叫web2.0,是web2.0的页面都会用ajax的]

使用ajax的目的没别的,就是实现无刷新更新页面,所谓异步就是不用执行后台程序,前台就会得到相应的改变值,从而实现前台页面改变数据的目的,而这个改变的值还是通过后cs代码操作改变的,听起来会很不可意,这是怎么作到的那,听我慢慢说。

经过我这几天的研究,在asp.net里实现ajax的方法可不只一种

1.有直接用框架的:这种我比较喜欢,因为比较干净,用自己的框架,我试过ajaxpro和prototype,这两种我用过了,觉得不错,以后我还会继续用,jquery其实也属于这一范畴,今天研究半天,没太明白,可能是我没找到现成的框架吧,所以就不研究了

2.还有一种就是用微软专门为ajax开发的控件包,叫作asp.net ajax control toolkit,这个我没太研究,网上有相关资料,想知道的可以自己去查,里面有很多现成的控件可以实现ajax。

3.用vs2005的可以下个aspajaxextsetup.msi,里面有updatepanel控件也可以实现ajax,这个我只初步试了一下,也好用,不过原理还不太明白。

以上三种是我收集到的一些ajax的实现方法,我要讲的是第一种方法的应用,因为第一种能叫你明白ajax的运行原理,比较适合初学者。

我主要讲ajaxpro,这是个组件,必须去网上下载,其实就是一个ajaxpro.dll文件,注意,网上有两种一种叫ajax.dll一种叫ajaxpro.dll,这两种功能上是一样的,就是添加引用的语句有些不同,下面我会分别说的。其实用ajax都要下相关组件的,开始我也不习惯下什么插件,可后来还是下了,不下不行呀。我下到的是ajax.dll,所以讲时以ajax.dll为准。

应用篇,这以下的东西会借鉴网上其他人的文章,在这里声明一下

1.先把ajax.dll添加引用到项目中,别告诉我不会,如果连这个也不会就太那个了,和添加其他dll一样,在项目上右击,菜单上有个[添加引用],然后一步一步把那个.dll文件添加进来,之后你会在项目的引用中看到那个ajax.dll就是添加成功了

2.修改web.config。在元素中添加以下代码。这里的ajax.dll和ajaxpro.dll引用方法是不一样的,一定要注意

3对ajaxpro用到的页page_load事件中进行运行时注册。如:

protected void page_load(object sender, eventargs e)

{

ajax.utility.registertypeforajax(typeof(_default));//是ajax.dll的

ajaxpro.utility.registertypeforajax(typeof(_default));//ajaxpro.dll的

}

//这的_default是指页面类的类名,就是这个页面的名字。如是放在命名空间,则需要写上完整的命名空间(如:namespaces._default)

4创建服务器端方法

[ajax.ajaxmethod]//这句一定要有,如果你是ajaxpro.dll就写成[ajaxpro.ajaxmethod]

public string getvalue(int a,int b)

{

//该方法我们将实现从客户端传入两个数,在服务器端相加计算后返回到客户端。这里可以写在原来的页后台中也可以单独写一个类。

return convert.tostring(a+b);//这里返回的就是前台得到的值,反正参数已经进cs文件了,想怎么操作就怎么操作,包括读库都可以。

}

5客户端调用。

开始

现在我们来分析一下如果点击开始按钮都执行了些什么,首先在前台执行getvalue()函数,getvalue函数里的 _default.getvalue(1,2,getgroups_callback);会执行后台的cs函数,我觉得这里才是ajax的精髓,因为这里的执行是通过ajax组件无刷新的执行后台cs函数的,通常我们要调用后台的cs函数都是通过正常方法刷新一下页面执行后台绑定好的cs函数,这里用ajax就不用刷新的执行后台的那个getvalue函数了,1和2是参数,要在getvalue里计算了,getgroups_callback这个参数是必须要有了,要不然你在cs里传东西回来用什么接收呀,getvalue函数在后台计算出结果来后,这种计算已经在后台了,想怎么算就怎么算,你想读库都没问题,然后通过return返回值,这个值是什么都行,那怕是一段"

helloworld"这样的html代码也行,前台用getgroups_callback()这个js函数接收这个值,然后就是前台调用了,想怎么用就怎么用了呗,随你喜欢,这就是ajax运行的一个过程,从前台无刷新到后台,计算后再返回前台,怎么样,明白了没

以上就是我对ajax的理解,也不知道对不对,不过我也是比较有自信的,呵呵,如果说的不对就请给我指出来,不要误人子弟


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/