AJax技术

Ajax 学习初始

字号+ 作者:H5之家 来源:H5之家 2017-02-13 11:00 我要评论( )

Ajax 学习初步Ajax学习 第一步、创建XMLHTTPRequest对象 为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则

Ajax 学习初步

Ajax学习

第一步、创建 XMLHTTPRequest 对象

为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xmlhttp;

if (window.XMLHttpRequest){

// code for IE7+, Firefox, Chrome, Opera,Safari

xmlhttp=new XMLHttpRequest();

  }else{

// code for IE6, IE5

    xmlhttp=newActiveXObject("Microsoft.XMLHTTP");

  }

 

第二步、向服务器发送请求

xmlHttp.open(“请求方式”, url地址, async是否异步true ro false)

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

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

    }

}

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

xmlhttp.send();

注释:当您使用 async=false 时,请不要编写 onreadystatechange 函数,把代码放到 send() 语句后面即可:

xmlhttp.open("GET","test1.txt",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

 

第三步、服务器响应

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

responseText 属性

如果来自服务器的响应并非 XML,请使用 responseText 属性。

responseText 属性返回字符串形式的响应,因此您可以这样使用:

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

responseXML 属性

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:

请求 books.xml 文件,并解析响应:

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;

 

附:AJAX - onreadystatechange事件

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

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

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

属性

描述

onreadystatechange

存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

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){ document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }

使用Callback 函数

callback 函数是一种以参数形式传递给另一个函数的函数。

如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同):

function myFunction(){

loadXMLDoc("ajax_info.txt",function(){

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

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

        }

   });

}

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • dwr学习札记2之反转ajax

    dwr学习札记2之反转ajax

    2017-02-14 09:03

  • php+ajax实现无刷新动态加载数据技术

    php+ajax实现无刷新动态加载数据技术

    2017-02-13 10:00

  • WCF与AJAX的跨域问题?

    WCF与AJAX的跨域问题?

    2017-02-13 09:01

  •  dwr兑现Reverse Ajax推送技术的三种方式

    dwr兑现Reverse Ajax推送技术的三种方式

    2017-02-13 08:00

网友点评