快速学习AJAX之一 Ajax基础
大家好,这是一套AJAX的基础教程,首先声明一下我是从事ASP.NET开发
但是我这回讲解的AJAX不是ASP.NET其中的哪些控件的操作。虽然ASP.NET自带的AJAX控件给我们使用AJAX带来了极大的方便
但是我决定我还是要一篇篇的更新 “原生态的AJAX”
呵呵,我也不知道这套教程大概有多少讲,但是有一点我一定将我知道的AJAX完全以一种简单通俗的方式告诉大家。
AJAX是什么呢?英文的全称你可以“有道一下” 说白了就是异步JavaScript+XML
大家可以去Google上面搜索一下AJAX的来历什么的,我这里一些从简。 弱弱的记得 希腊英雄里面有一个名字挺像 “AJAX”的,哈哈......
其实大家简单的理解AJAX就是 一种“无刷新的技术”当然这是泛泛而谈,毕竟
AJAX技术没有这么简单。
我们接触比较多的AJAX技术就是 在线地图服务了,Google地图就是率先将AJAX技术应用到切合实际的技术当中去的。
AJAX技术中用到的四个比较重要的技术点 Javascrip Css Dom(文档对象模型) XMLHttpRequest对象 这个我们会在后面慢慢的接触到
当你了解了以上的前三项技术,那么你就可以接下来学习AJAX应用了。
好了,开始我们的AJAX之路
首先我们需要创建XmlHttpRequest对象 。当然由于一些原因,浏览器兼容性问题,创建方式不同
我们首先创建一个支持多浏览器的 XMLHttpRequest 对象
<script type="text/javascript"> var xmlHttp = false; //这个声明成什么都无所谓啦 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } if (!xmlHttp && typeof XMLHttpRequest!='undefined') { xmlHttp = new XMLHttpRequest(); } </script>
然后我们写好了这个,大家可以自己把他写到一个 function中去
下面我们继续 写完成 我们的第一个例子 Ajax 你好 呵呵 够俗了吧
为了完成这个 我们需要创建一个一般处理程序
然后我们在一般处理程序当中写上如下的简单代码
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; context.Response.Write(DateTime.Now.ToString()); }好了下面开始我们的主要任务
<head> <title></title> <script type="text/javascript"> var xmlHttp = false; //这个声明成什么都无所谓啦 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } function getAjax() { xmlHttp.open("GET", "Ajax.ashx"); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 && xmlHttp.status ==200) { alert(xmlHttp.responseText); } } xmlHttp.send(); } </script> </head> <body> <input type="button" value="单击我显示时间" onclick="getAjax();" /> </body> </html>
上面的代码就是特别简单的一个例子了
我给大家简单的说明一下
xmlHttp.open("GET", "Ajax.ashx"); 这句话中 包含的几个要点 第一 “GET” 这个是得到数据的一种方式 ,当然常见的也有 “POST”
其实还有几种,我记得好像是有7种 (HEAD,PUT,DELETE,OPTION,TRACE)这些方法大家可以自己去查找资料都是干神马的,我就不详细说明了。
后面是请求的路径,当然你可以请求一个URL的地址。
其实后面还有第三个参数,是设定异步操作还是同步操作的,这个我们以后再说。
onreadystatechange:
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
简单点说就是
每当 readyState 改变时,就会触发 onreadystatechange 事件。
还有 onreadystatechange 只是一个属性名称,而不是函数名称,这里其实是创建了一个匿名函数
readyState:
表示的是当前的对象状态【他有五个值】
0: uninitialized, 【请求未初始化】
1: loading, 【服务器连接已建立】
2: loaded, 【请求已接收】
3: interactive, 【请求处理中】
4: complete。 【请求已完成,且响应已就绪】
status:
HTTP响应状态码 具体的可以去Google上面找
我简单的举几个例子
403 Forbidden,
404 Not Found,【你懂的】
200正常返回
所以我们需要满足这两个条件。
好了,剩下的就交给
xmlHttp.responseText 去读取吧。
哦了,第一节课就到这里了,讲解的不好,还望大家海涵,我会继续写下去的,谢谢!
对了,大家可以试一下 页面上面嵌入一个 视频,然后再调用 Alert()时间 ,看看那个视频会中断吗?(*^__^*) 嘻嘻…… 传说中的无刷新
作者:KingDZ
出处:http://www.cnblogs.com/hihell/
关于作者:作者喜欢编程,擅长ASP.NET网站开发,喜欢MVC,SilverLight开发,喜欢交流,喜欢创新
我的QQ:860866679 MSN:wangdezhen@live.com 期待有共同志向者交流进步。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题
可以通过KingDZ's
Email 联系我,非常感谢。