AJAX异步传输,原理是利用JS的XMLHttpRequest对象,直接和服务器通信,局部重载。在WEB设计中,交互性更强!
1 创建XMLHttpRequest对象
由于不同浏览器,XMLHttpRequest对象的创建方式不同,所以浏览器判断或者创建成功与否的判断,就十分必要!
2 使用XMLHttpRequest对象创建异步HTTP请求
2.1 onreadystatechange属性服务器响应的函数;
2.2 readystate属性存有服务器响应的状态信息,每当它改变时,onreadystatechange函数就回执行;
2.3 responseText属性,用于取回服务器返回的数据。
2.4 open()方法功能在服务器端执行脚本,send()方法向服务器发送请求
3 实例
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | < !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>AJAX Test</title>
<script type="text/javascript" >
function ajaxFunction(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
alert("Your Browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById("time").value = xmlHttp.responseText;
//document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","ajax.php",true);
xmlHttp.send(null);
}
</script>
</head>
<body>
<form name="myForm">
UserName: <input type="text" name="userName" onKeyup="ajaxFunction()" />
Time: <input type="text" name="time" id="time"/>
</form>
</body>
</html> |
使用 XMLHttp=new XMLHttpRequest() 来创建此对象。这条语句针对 Firefox、Opera 以及 Safari 浏览器。假如失败,则尝试针对 Internet Explorer 6.0+ 的 xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”),假如也不成功,则尝试针对 Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”)。
ajax.php
1 | echo date('Y-m-d H:i:s'); |