通过AJAX(Asynchronous JavaScript And XML)实现异步刷新,与服务器交换数据并更新部分网页内容,在不加载整个页面的情况下。
创建XHR(XML Http Request)对象:
XHR(XMLHttpRequest)对象是一个javaScript对象,可以在用于感觉不到的情况下,悄悄的和服务器进行数据交换,Ajax就是通过XHR来实现无刷新效果的。
创建XMLHttpRequest对象:
var xmlHttp = new XMLHttpRequest();
向服务器发送请求:
使用XMLHttpRequest对象的open()和send()方法。
xmlHttp.open("GET","test1.txt",true);
xmlHttp.send();
其中:
方法open(method,url,async):method表示请求类型(GET或POST),url表示文件在服务器上的位置,该文件可以是任何类型的文件,async表示同步或异步(true异步,false同步)。XMLHttpRequest对象如果用于Ajax的话,其open()方法的async参数必须是true。
方法send(string):将请求发送到服务器,string仅用于POST请求。
当async为true的时候,使用
xmlHttp.onreadystatechange来定义异步请求回来时的处理函数。
服务器响应:
如果想要获取服务器的响应,需要使用XMLHttpRequest对象的responseText(获取字符串形式的响应数据)或responseXML(获取XML形式的响应数据)属性。
onreadystatechange事件
XMLHttpRequest对象的三个重要属性:
1.onreadystatechange存储函数,当readyState属性改变的时候,就会调用这个函数。
2.readyState属性,用于存储XMLHttpRequest的状态,
0:请求未初始化
1:服务器连接已建立
2:请求已接收
3:请求处理中
4:请求已完成,且响应已就绪
3.status:200:“OK”,404:未找到页面。
例如:在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
网友评论