四、Ajax原理
Ajax为“Asynchronous JavaScript + XML”的简称,主要是通过JavaScript对象中的XmlHttpRequest向服务器提出请求,并根据处理的结果更新页面。这样的更新不会使整个页面全部更新,而是根据用户的需要对某个区域进行局部更新,而且在更新的同时不影响其它区域的浏览。
以下为Ajax部分的源码,为了方便大家使用,只需明白如何调用即可,关于本节代码的详细介绍,在《asp+ajax打造无刷新新闻评论系统》一文中已经叙述过。
Xml.js
/*创建并返回XmlHttp对象开始*/
var xhr;
function getXHR()
{
try {
xhr=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xhr=false;
}
}
if(!xhr&&typeof XMLHttpRequest!='undefined')
{
xhr=new XMLHttpRequest();
}
return xhr;
}
function openXHR(method,url,callback)
{
getXHR();
xhr.open(method,url);
xhr.onreadystatechange=function()
{
if(xhr.readyState!=4)return;
callback(xhr);
}
xhr.send(null);
}
function loadXML(method,url,callback)
{
getXHR();
xhr.open(method,url);
xhr.setRequestHeader("Content-Type","text/xml");
xhr.setRequestHeader("Content-Type","GBK");
xhr.onreadystatechange=function()
{
if(xhr.readyState!=4)return;
callback(xhr);
}
xhr.send(null);
}
loadXML(“http方法”,”URL地址”,”function”)
function为loadXML成功调用后所返回的处理函数,本函数默认参数为xmlDOM
例:假使我们要请求一个list.asp页面,请求成功后返回setList(xmlDom),采用返回函数主要是为了方便移植与重复使用,我们可以根据不同的请求设置不同的返回处理,而不必要去考虑xmlHttp是如何实现的。