AJAX:异步提交技术(它可以将页面中部分数据进行更新,传统做法更新页面内容只能将整个页面全部更新)
AJAX是利用html,css,js等实现的一种方法
当用户触发事件,就会执行 loadXMLDoc() 函数。loadXMLDoc() 函数创建 XMLHttpRequest 对象,添加当服务器响应就绪时执行的函数,并将请求发送到服务器。
当服务器响应就绪时,对页面的部分数据进行更新显示。
下面是一段简单的AJAX代码:
<script>
function loadXMLDoc()//触发事件之后执行的代码
{
var xmlhttp;
if (window.XMLHttpRequest)//根据不同的浏览器创建XMLHttpRequest对象
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)//判断服务器响应是否就绪
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;//对页面进行操作
}
}//将请求发送至服务器
xmlhttp.open("GET","xxxx/xxxx/xx.txt",true);//规定请求
xmlhttp.send();
}
</script>
1.创建XMLHttpRequest对象(用于在后台与服务器交换,正因如此可以进行页面部分数据更新)
variable=new XMLHttpRequest();
variable=new ActionXObject();//用于IE5,IE6
var xh;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xh=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xh=new ActiveXObject("Microsoft.XMLHTTP");
}
2.open(),send()方法(将请求发送至服务器)//可以用asp,php来进行一些后台的处理,用txt,xml存取数据,只要将文件在服务器的位置写上即可,如需传值请在文件在服务器的位置后加相应的代码
xh.open("GET/POST","文件在服务器的位置","true/false(同步/异步)");//规定请求
xh.send(String);//将请求发送至服务器
一般使用GET,但在特殊情况下需要使用post
当XMLHttpRequest用于AJAX是必须设置为true,在其他情况下也不建议设置为false,程序容易进入挂起状态,当使用true时,必须编写执行函数
xh.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)//判断
{
//执行代码
}
}
xh.open("GET","",true);
xh.send();
当使用false时,不必编写onreadystatechange,讲要执行的代码(本该写入function(){}内的代码)直接卸载xh.send();后
3.responseText,responseXML(获取服务器响应)
xh.responseText 获得字符串形式的响应数据。
xh.responseXML 获得 XML 形式的响应数据。
你需要在执行代码部分获取响应数据,然后将响应数据通过js等方法更新至页面上
4.onreadystatechange事件
XMLHttpRequest有三个重要属性onreadystatechange,status,readyState
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("one").innerHTML=xmlhttp.responseText;//要执行的代码
}
}
onreadystatechange: 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState: 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status: 200: "OK"
404: 未找到页面
当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
5.回调函数
一般把创建XMLHttpRequest的部分和执行任务的部分用两个函数编写,在执行任务部分调用创建XMLHttpRequest部分。因为一个网站可能有多个执行任务在不同条件下进行,所以要使用回调函数。
<script>
var xmlhttp;
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
{// IE7+, Firefox, Chrome, Opera, Safari 代码
xmlhttp=new XMLHttpRequest();
}
else
{// IE6, IE5 代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("xxxx/xxxx/xx.txt",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("div1").innerHTML=xmlhttp.responseText;
}
});
}
</script>
然后在你的html或jsp中编写触发事件调用myFunction()函数。
6,xmlhttp.getAllResponseHeaders();//检索资源(文件)的头信息。
AJAX基础
最新推荐文章于 2025-02-24 13:36:17 发布