Ajax异步请求
1. 简介根据百度百科的解释,ajax全称“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种创建交互式网页的网页开发技术。通过后台与服务器交互进行少量的数据交互,来使网页局部和服务器交互,而不用刷新整个页面。传统的网页中,如果需要刷新页面任何一个地方,就需要刷新整个页面。 ajax的优点:
AJAX应用的例子: 2. ajax的模式ajax的模式主要是通过在网页前端使用核心对象XMLHttprequest来向后台服务器发起请求,后台响应给前端(txt,xml),这样一来,所有请求的内容和响应的处理都可以在前端使用javascript来处理。 根据ajax的名称可以看出,在ajax中主要使用到的技术有javascript和xml,其实ajax不是一种新技术,而是- 几种技术的组合。主要是:
3. 请求和响应ajax中,有一个核心对象XMLHttpRequest,在javascript中使用这个对象来和后台服务器交互达到异步请求的目的; 创建XMLHttpRequest对象所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象。为了兼容性,使用如下的方式创建XMLHttpRequest对象,虽然IE的创建方式不同,但是XMLHttpRequest在IE中的实现和其他浏览器是一样,使用也一样: var xmlhttp;
if (window.XMLHttpRequest)
{
// for IE7+,Firefox,Chrome,Opera,Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// for IE6,IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
请求将请求发送到服务器,使用 XMLHttpRequest 对象的 open() 和 send() 方法。
响应获得来自服务器的响应,使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
4. 请求的状态readyStateXMLHttpRequest对象有三个重要的属性
5. HelloWorld<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Ajax helloworld</title>
<script type="text/javascript"> window.onload = function() { document.getElementsByTagName("a")[0].onclick = function() { //1.创建xmlhttpRequest对象 var request = new XMLHttpRequest(); //创建方法参数 var methoad = "GET"; //创建url参数 var url = this.href; // 2. 调用XMLHttpRequest的open方法。 request.open(methoad,true); // 2.调用XMLHttpRequest的send方法 request.send(null); // 3.为XMLHttpRequest添加onreadystatechange事件 request.onreadystatechange = function() { //请求已经完成 if(request.readyState == 4) { //并且请求可用 if(request.status == 200) { document.getElementById("p").firstChild.nodeValue = request.responseText; //var para = document.createElement("p"); //var node = document.createTextNode(request.responseText); //para.appendChild(node); //document.getElementById("p").appendChild(para); } } } //取消点击链接的默认事件 return false; } } </script>
</head>
<body>
<p> 点击链接后异步请求服务器上的hello.txt文件,显示在下方,不刷页面</p>
<a href="hello.txt">AAAAA</a>
<hr />
<div id="p">
<p></p>
</div>
</body>
</html>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |