标签:
Ajax 应用程序所用到的基本技术:
div
、span
和其他动态 HTML 元素来标记 HTML。Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对XMLHttpRequest有所了解。
XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。
所以我们先从XMLHttpRequest讲起,来看看它的工作原理。
首先,我们先来看看XMLHttpRequest这个对象的属性。
它的属性有:
onreadystatechange 每次状态改变所触发事件的事件处理程序。
responseText 从服务器进程返回数据的字符串形式。
responseXML 从服务器进程返回的DOM兼容的文档数据对象。
status 从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
status Text 伴随状态码的字符串信息
readyState 对象状态值
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据
现在我们介绍了 Ajax,对 XMLHttpRequest
对象以及如何创建它也有了基本的了解。如果阅读得很仔细,您可能已经知道与服务器上的 Web 应用程序打交道的是 JavaScript 技术,而不是直接提交给那个应用程序的 HTML 表单。
还缺少什么呢?到底如何使用 XMLHttpRequest
。因为这段代码非常重要,您编写的每个 Ajax 应用程序都要以某种形式使用它,先看看 Ajax 的基本请求/响应模型是什么样吧。
您已经有了一个崭新的 XMLHttpRequest
对象,现在让它干点活儿吧。首先需要一个 Web 页面能够调用的 JavaScript 方法(比如当用户输入文本或者从菜单中选择一项时)。接下来就是在所有 Ajax 应用程序中基本都雷同的流程:
function ajax(url, fnSucc, fnFaild) { //1.创建Ajax对象 var oAjax=null; if(window.XMLHttpRequest) { oAjax=new XMLHttpRequest(); } else { oAjax=new ActiveXObject("Microsoft.XMLHTTP"); } //2.连接服务器 oAjax.open(‘GET‘, url, true); //3.发送请求 oAjax.send(); //4.接收服务器的返回 oAjax.onreadystatechange=function () { if(oAjax.readyState==4) //完成 对象状态值,0—未初始化 1—正在加载 2—加载完毕 3—交互 4—完成 { //status 从服务器返回的数字代码,比如常见的404(未找到)和200 请求成功(其后是对GET和POST请求的应答文档) if(oAjax.status==200)//成功 { fnSucc(oAjax.responseText);//从服务器进程返回数据的字符串形式。 } else { if(fnFaild) fnFaild(oAjax.status); } } }; }
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="ajax.js"></script> <script> window.onload=function(){ var btn=document.getElementById("btn"); btn.onclick=function(){ //ajax(‘abc.txt‘,function(data){ ajax(‘abc.txt?t=‘+new Date().getTime(),function(data){//?t=‘+new Date().getTime() 阻止缓存 alert(data) }) } } </script> </head> <body> <button id="btn">读取文件</button> </body> </html>
标签:
原文地址:http://www.cnblogs.com/eaysun/p/4417080.html