2007-10-08

完全了解AJAX

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

用户名和密码用于验证身份时选择

一旦我们设置Async为true,我们需要定义一种命令方式,用于回应请求状态改变-可以通过设置XMLHttpRequest对象中的onreadystatechange属性完成。

xmlhttp.onreadystatechange = myReturnMethod;

xmlhttp.send(null);

最后需要做的是把请求发送出去,先说最简单的,我们只发送不含任何附加数据的请求:

在一个简单的示例中综合了上述所有内容:

xmlhttp.open("GET", "/some_dir/myfile.html", true);

xmlhttp.onreadystatechange = myReturnMethod;

xmlhttp.send(null);

上述三行代码就是我们进入AJAX世界所需要的全部内容,没有包含任何复杂的概念或曲折的逻辑。

对象状态

上文中提到过,我们需要定义一种命令方式,用于回应请求状态改变,这可以通过设置onreadystatechange属性完成,请注重我所说的是“状态改变”,并不是“完成”-因为这两者之间是完全不同的。结合我们刚才所学的知识,最好通过例子来说明。写入如下代码:

<script>

var xmlhttp = false;

try {

xmlhttp = new XMLHttpRequest();

} catch (trymicrosoft) {

try {

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (othermicrosoft) {

try {

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (failed) {

xmlhttp = false;

}

}

}

function goAJAX() {

alert("InitialReadyState is:" xmlhttp.readyState);

xmlhttp.onreadystatechange = myReturnMethod;

xmlhttp.open("GET", "another_file.html", true);

xmlhttp.send(null);

}

function myReturnMethod() {

alert("NewReadyState is:" xmlhttp.readyState);

}

</script>

<button onclick="javascript:goAJAX()">Let's try it!</button>

在被请求的文件中,我们可以填补任何我们想要的内容,只要可以建立,我们就不打算使用其中的内容。

点提交按钮前,我们还应该注重,对象状态警告出现多次,最终显示的对象状态值是4。不同的浏览器对此的处理方法不同,Safari精确地从0-4计数,对于firefox,1出现两次,0只在运行的第一次出现。值得庆幸的是,我们仅仅对readyState是4的情况感爱好,但是为了完整性,我们还是看看其他数字所代表的含义。

0:未初始化-打开命令之前,对象不包含数据

1:对象正在加载数据-发送请求命令之前

2:加载完毕-请求已经被发出

3:交互-请求正在被处理,可能会得到一些数据,但不完全,所以不能安全使用

4:完成-请求已完成,最终数据可以安全使用。

这些新信息说明,只有在警告显示请求完成后,才能改变myReturnMethod。

function myReturnMethod() {

if (xmlhttp.readyState==4){

alert("NewReadyState is:" xmlhttp.readyState);

}

}

响应状况

采用先前的代码,我们改变open method中的url参数到一个不存在的文件中:

xmlhttp.open("GET", "filethatdoesnotexist.html", true);

再次运行该代码,我们看到和先前的代码执行了相同的结果-为什么会这样?

假如这是一个正常http请求,我们预计404错误会出现-在AJAX中也具有相同的状况属性。该属性仅可读,包含HTTP请求状况代码,我们这里的文件对应的代码是404。应用于一般http请求的相同状况代码仍适用AJAX。(注重:为了正常运行,页面应该读取来自一个HTTP服务器的请求,假如从文件系统中读取,该状况代码将始终是未定义的。)
共4页: 上一页 [1] 2 [3] [4] 下一页

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

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