2007-10-08

完全了解AJAX

来源: 本站收集整理 作者: 评论 0 条
 

因此,我们需要增加一个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。
共4页: 上一页 [1] [2] 3 [4] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:用meta标签来增强网页功能  
下一篇:HTML超文本标记语言速查手册
    评论加载中…

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号