浅谈AJAX基本实现流程

1、jsajax实现流程:

  (1) 创建XMLHttpRequest对象,也就是创建一个异步调用对象.

  (2) 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

  (3) 设置响应HTTP请求状态变化的函数.

  (4) 发送HTTP请求。

  (5) 获取异步调用返回的数据.

  (6) 使用JavaScriptDOM实现局部刷新.

2、创建XMLHttpRequest

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

创建XMLHttpRequest对象:

  var xmlhttp;

  if (window.XMLHttpRequest)

     {//兼容IE7+, Firefox, Chrome, Opera, Safari

     xmlhttp=new XMLHttpRequest(); }

  else

    {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  // 兼容 IE6, IE5}

3、向服务器发送请求:

  将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() send() 方法

  open(method,url,async);

  send(string);

  例如:

  xmlhttp.open("GET","test1.txt",true);

  xmlhttp.send();

  method:请求的类型;GET POST

  url:文件在服务器上的位置

  asynctrue(异步)或 false(同步)

postget

  与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:

  a) 无法使用缓存文件(更新服务器上的文件或数据库)

  b) 向服务器发送大量数据(POST 没有数据量限制)

  c) 发送包含未知字符的用户输入时,POST GET 更稳定也更可靠

4、设置响应HTTP请求状态变化的函数

  如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:setRequestHeader(header,value)

当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:

  xmlhttp.onreadystatechange=function()

    {

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

      {

      document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

      }

    }

 

5、服务器响应

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

来自服务器的响应并非XML时用responseText

  document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

来自服务器的响应是XML是用responseXML

  xmlDoc=xmlhttp.responseXML;

  txt="";

  x=xmlDoc.getElementsByTagName("ARTIST");

  for (i=0;i<x.length;i++)

    {

    txt=txt + x[i].childNodes[0].nodeValue + "<br />";

    }

  document.getElementById("myDiv").innerHTML=txt;

posted @ 2017-07-04 13:50  flower-qh  阅读(216)  评论(0编辑  收藏  举报