AJAX基础

AJAX:异步提交技术(它可以将页面中部分数据进行更新,传统做法更新页面内容只能将整个页面全部更新)
AJAX是利用html,css,js等实现的一种方法
当用户触发事件,就会执行 loadXMLDoc() 函数。loadXMLDoc() 函数创建 XMLHttpRequest 对象,添加当服务器响应就绪时执行的函数,并将请求发送到服务器。
当服务器响应就绪时,对页面的部分数据进行更新显示。
下面是一段简单的AJAX代码:
<script>
function loadXMLDoc()//触发事件之后执行的代码
{
    var xmlhttp;
    if (window.XMLHttpRequest)//根据不同的浏览器创建XMLHttpRequest对象
    {
        //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // IE6, IE5 浏览器执行代码
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)//判断服务器响应是否就绪
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;//对页面进行操作
        }
    }//将请求发送至服务器
    xmlhttp.open("GET","xxxx/xxxx/xx.txt",true);//规定请求
    xmlhttp.send();
}
</script>
1.创建XMLHttpRequest对象(用于在后台与服务器交换,正因如此可以进行页面部分数据更新)
  variable=new XMLHttpRequest();
  variable=new ActionXObject();//用于IE5,IE6
  var xh;
  if (window.XMLHttpRequest)
  {
      //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
      xh=new XMLHttpRequest();
  }
  else
  {
      // IE6, IE5 浏览器执行代码
      xh=new ActiveXObject("Microsoft.XMLHTTP");
  }
2.open(),send()方法(将请求发送至服务器)//可以用asp,php来进行一些后台的处理,用txt,xml存取数据,只要将文件在服务器的位置写上即可,如需传值请在文件在服务器的位置后加相应的代码
  xh.open("GET/POST","文件在服务器的位置","true/false(同步/异步)");//规定请求
  xh.send(String);//将请求发送至服务器
  一般使用GET,但在特殊情况下需要使用post
  当XMLHttpRequest用于AJAX是必须设置为true,在其他情况下也不建议设置为false,程序容易进入挂起状态,当使用true时,必须编写执行函数
  xh.onreadystatechange=function()
  {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)//判断
      {
          //执行代码
      }
  }
  xh.open("GET","",true);
  xh.send();
  当使用false时,不必编写onreadystatechange,讲要执行的代码(本该写入function(){}内的代码)直接卸载xh.send();后
3.responseText,responseXML(获取服务器响应)
  xh.responseText    获得字符串形式的响应数据。
  xh.responseXML    获得 XML 形式的响应数据。
  你需要在执行代码部分获取响应数据,然后将响应数据通过js等方法更新至页面上
4.onreadystatechange事件
  XMLHttpRequest有三个重要属性onreadystatechange,status,readyState
  xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("one").innerHTML=xmlhttp.responseText;//要执行的代码
        }
    }
    onreadystatechange:    存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
    readyState:    存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
            0: 请求未初始化
            1: 服务器连接已建立
            2: 请求已接收
            3: 请求处理中
            4: 请求已完成,且响应已就绪
    status:    200: "OK"
            404: 未找到页面
     当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
5.回调函数
  一般把创建XMLHttpRequest的部分和执行任务的部分用两个函数编写,在执行任务部分调用创建XMLHttpRequest部分。因为一个网站可能有多个执行任务在不同条件下进行,所以要使用回调函数。
  <script>
  var xmlhttp;
  function loadXMLDoc(url,cfunc)
  {
      if (window.XMLHttpRequest)
        {// IE7+, Firefox, Chrome, Opera, Safari 代码
            xmlhttp=new XMLHttpRequest();
        }
      else
        {// IE6, IE5 代码
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
  xmlhttp.onreadystatechange=cfunc;
  xmlhttp.open("GET",url,true);
  xmlhttp.send();
  }
  function myFunction()
  {
     loadXMLDoc("xxxx/xxxx/xx.txt",function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("div1").innerHTML=xmlhttp.responseText;
        }
    });
  }
  </script>
  然后在你的html或jsp中编写触发事件调用myFunction()函数。
6,xmlhttp.getAllResponseHeaders();//检索资源(文件)的头信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值