AJAX即Asynchronous Javascript And XML,也就是异步的JavaScript和XML,是指一种创建交互式网页应用的网页开发技术,用于创建快速动态网页。传统网页如果需要更新内容,必须重载整个页面。如果使用AJAX,就可以实现网页的异步更新,也就是说不重新加载网页的情况下,对网页的某部分进行更新。
AJAX的工作原理:
AJAX的核心对象是XMLHttpRequest对象,即可扩展超文本传输请求。XML是可扩展标记语言,Http超文本传输协议,Request请求。实质上是因为XMLHttpRequest对象,才实现了在不向服务器提交整个页面的情况下,实现局部的网页更新。
@H_301_45@
@H_301_45@
五步使用法:
1、建立XMLHttpRequest对象
IE7以上IE浏览器、Firefox、Opera等浏览器可以直接创建XMLHttpRequest对象,而IE6以及IE6以下浏览器使用ActiveXObject方式创建。
<span style="font-family:KaiTi_GB2312;font-size:18px;">xmlhttp.onreadystatechange = callback;</span>回调函数的调用不需要后面的括号,只需要写函数名即可。
3、使用open方法设置和服务器端交互的基本信息
open方法有五个参数,前三个是必须有的,其余两个可以为null。
4、设置发送的数据,开始和服务器端交互
交互方式有两种,一种是POST方式,一种是GET方式。
5、在回调函数中判断交互是否结束,响应是否正确,并根据需要获取服务器端返回的数据,更新页面内容。
通过readyState()方法可判断与服务器端的交互是否完成;利用status()可以判断服务器响应代码,服务器端是否返回正确数据。如果readyState=4,表示交互已完成;status=200,表示服务器响应代码是200,正确返回数据。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"> var xmlhttp; function submit() { //1.创建XMLHttpRequest对象 //IE7、Firefox等 if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMimeType) { xml.overrideMimeType("text/xml"); } //IE6以下 } else if (window.ActiveXObject) { var activexName = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for (var i = 0; i < activexName.length; i++) { try{ xmlhttp = new ActiveXObject(activexName[i]); break; } catch (e) { } } if (xmlhttp == undefined || xmlhttp == null) { alert("当前浏览器不支持创建XMLHttpRequest对象,请更换浏览器"); } } //2.注册回调方法 xmlhttp.onreadystatechange = callback; /* //GET方式交互 //3.设置和服务器端交互的相应参数 xmlhttp.open("GET","AJAX?name=" + document.getElementById("UserName").value,true); //4.设置向服务器端发送的数据,启动和服务器端的交互 xmlhttp.send(null); */ //POST方式交互 //3.设置和服务器端交互的相应参数 xmlhttp.open("POST","AJAX",true); //post方式交互需要增加的代码 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //4.设置向服务器端发送的数据,启动和服务器端的交互 xmlhttp.send("name=" + document.getElementById("UserName").value); } function callback() { //5.判断和服务器端的交互是否完成,以及服务器端是否正确返回数据 if (xmlhttp.readyState == 4) { //表示和服务器端交互已完成 if (xmlhttp.status == 200) { //表示服务器响应代码是200,正确的返回了数据 //纯文本数据的接收方法 var message = xmlhttp.responseText; //XML数据对应的对象的接收方法 //使用前提是服务器端需要设置content-type为text/xml //var domXml=xmlhttp.responseXML; //向div标签中填充文本内容的方法 var div = document.getElementById("message"); div.innerHTML = message; } } }</span></span>
总结
AJAX其实是JavaScript编写的,在前台,通过编写JavaScript语言,使得页面实现不刷新就能实现和服务器端的交互。再专业一点来看,其实这些JavaScript代码可以直接写到JS文件里面,进行封装后,在页面上引用即可,而不是在网页上编写JavaScript脚本。