因此,我们需要增加一个if陈述,用来测试请求是否成功,假如是一个200的响应代码,将被成功返回。假如不成功,我们必须选择恰当的方式来解决错误。
function myReturnMethod() {
if (xmlhttp.readyState==4){
if (xmlhttp.status == 200) {
alert("Request successfully completed");
}
else if(xmlhttp.status == 404) {
alert("Requested file not found");
}
else {
alert("Error has occurred with status code:
" xmlhttp.status);
}
}
}
ResponseText与responseXML
尽管我们已经可以成功地完成一个AJAX请求,但还需要对返回的数据做出处理。通过应用responseText 或responseXML属性,我们有两种处理的方式。最简单的方法是直接获取从服务器返回的数据,使用responseText属性中返回的纯文本数据。这样得到的数据可以是任何我们想要的形式;简单的文本响应,符号划界值或一整本字符串名册。在我们的返回方法中,我们将在警告中输出responseText,这将输出我们请求的整个文件内容。
在这个阶段,假如你还没有向我们发出请求的文件- another_file.html中输入任何内容,你应该做了。
function myReturnMethod() {
if (xmlhttp.readyState==4){
if (xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
else if(xmlhttp.status == 404) {
alert("Requested file not found");
}
else {
alert("Error has occurred with status code:
" xmlhttp.status);
}
}
}
另一个可供选择的找回返回数据的方法是使用responseXML属性,其将以XML文档对象的形式返回数据,利用Javascript的DOM功能可以对其研究。为了看到这一动作的结果,我们需要返回一个恰当的XML格式文档;我们就创建一个新文件来请求(xmlresult.html), 并写入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<root>
XML Formatted Result
</root>
然后我们需要将打开命令改为:
xmlhttp.open("GET", "xmlresult.html", true);
在我们的返回方法中所作的最大改变是,我们需要在那里替换警告(xmlhttp.responseText),代码如下:
xmldoc = xmlhttp.responseXML;
rootnode = xmldoc.getElementsByTagName('root').item(0);
alert(rootnode.firstChild.data);
瞧,我们正在利用DOM来返回数据。
通过结合我们所了解到的现有的javascript功能,该数据可被用于应付一个页面的内容。例如:
document.getElementById('resultdiv').innerHTML = xmlhttp.responseText;
何时使用AJAX
既然已经知道如何创建一个请求以及返回结果,那么还有一个问题是何时该使用AJAX呢?
对于一项新技术自然会有两方面的极端意见,一些网络开发者认为,假如没有AJAX,生活将变得更简单;另一些人则巴不得见到由AJAX构建的整个网站。通常这种情况下,真理往往介于这两种观点之间。当决定在你的网站上使用AJAX时,你也应当考虑其中带来的后果。首先,所有应用了AJAX的页面无法加入书签。随着AJAX的使用,也为你的网站引入了一种“状态”,而除了初始页面外,用户无法返回到任何其他页面。
原因是在用户的浏览器上url没有改变-假如其发生改变,AJAX就没有存在的必要了。
其次,假如想要支持每一位访问网站的用户,就需要付出双倍的工作。对于你创建使用AJAX网站的每个片段,你都必须迎合没有javascript功能用户的需要。假如为了javascript和非javascript用户具有相同的页面级别,需要做大量额外的工作,必须使用noscript标签。也就是说,AJAX通过减少浏览和交互时所需要的页面重载次数,从而提高了网站的可用性。结合javascript效果库,我们可以创建一些非常引人注目的页面交互功能,这在两年前是不可能实现的。因此,我的观点是在你的网站的非主要位置使用AJAX。例如,在某个网站,假如将AJAX结构应用到文章中将是极其错误的想法,因为你再也无法将未读完的文章加入书签。另一方面,一种文章评论或对话系统则非常适合应用AJAX。
评论加载中…
![]() |