AJAX

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

 XMLHttpRequest 对象

所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。

XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

{步骤

  1.创建Ajax对象

    var xmlhttp=new XMLHttpRequest

  2.连接服务器 open(请求类型Get或Post,文件在服务器上的位置,true(异步)或 false(同步))

    xmlhttp.open(get , text.txt , true)

  3.发送请求

    xmlhttp.send(null);  当为post请求时,(参数)

  4.接受响应

    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }

创建一个  XMLHttpRequest

var xmlhttp;
if (window.XMLHttpRequest)//判断浏览器是否支持XMLHttpRequest
{
    //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
    xmlhttp=new XMLHttpRequest();
}
else
{
    // IE6, IE5 浏览器执行代码
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

 连接服务器发送请求

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

服务器响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

responseText  获得字符串形式的响应数据。

responseXML  获得 XML 形式的响应数据。

 

onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当 readyState 改变时,就会触发 onreadystatechange 事件。

readyState 属性存有 XMLHttpRequest 的状态信息。

readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
 0: 请求未初始化
 1: 服务器连接已建立
 2: 请求已接收
 3: 请求处理中
 4: 请求已完成,且响应已就绪
status 200: "OK"
 404: 未找到页面

 

 

 

 

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪。

回调函数

xmlhttp.onreadystatechange=function(){

  if (xmlhttp.readyState==4 && xmlhttp.status==200){

    var sData=xmlhttp.responseXML;  //得到XML格式的数据

    Huidiaohanshu(sData); //执行回调函数

}

 

posted @ 2018-04-13 23:05  诸子百家,唯我纵横  阅读(89)  评论(0编辑  收藏  举报