ajax的知识点2

1、

<script language="java script" type="text/java script">
var request = false;
try {
request = new XM LH ttpRequest();
} catch (trym icrosoft) {
try {
request = new ActiveXO bject("M sxm l2.XM LH TTP");
} catch (otherm icrosoft) {
try {
request = new ActiveXO bject("M icrosoft.XM LH TTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XM LH ttpRequest!");
</script>

很容易被这些花括号迷住了眼睛,因此下面分别介绍每一步:
1. 创建一个新变量 request 并赋值 false。使用 false 作为判断条件,它表示还没有创建 XM LH ttpRequest 对
象。
2. 增加 try/catch 块:
1. 尝试创建 XM LH ttpRequest 对象。
2. 如果失败(catch (trym icrosoft)):
1. 尝试使用较新版本的 M icrosoft 浏览器创建 M icrosoft 兼容的对象(M sxm l2.
XM LH TTP)。
2. 如果失败(catch (otherm icrosoft))尝试使用较老版本的 M icrosoft 浏览器创建 M icrosoft
兼容的对象(M icrosoft.XM LH TTP)。
3. 如果失败(catch (failed))则保证 request 的值仍然为 false。
3. 检查 request 是否仍然为 false(如果一切顺利就不会是 false)。
4. 如果出现问题(request 是 false)则使用 java script 警告通知用户出现了问题。

 

 

如果以前没用见过 escape() 方法,它用于转义不能用明文正确发送的任何字符。比如,电话号码中的空格
将被转换成字符 % 20,从而能够在 U RL 中传递这些字符。
可以根据需要添加任意多个参数。比如,如果需要增加另一个参数,只需要将其附加到 U RL 中并用
“与”(& )字符分开 [第一个参数用问号(?)和脚本名分开]。
打开请求open() 是打开吗?internet开发人员对open() 方法到底做什么没有达成一致。但它实际上并 不是 打开一个请求。如
果监控XH TM L/Ajax 页有了要连接的 U RL 后就可以配置请求了。可以用 XM LH ttpRequest 对象的 open() 方法
来完成。该方法有五个参数:
● request-type :发送请求的类型。典型的值是 G ET 或 PO ST,但也可以发送
H EAD 请求。
● url :要连接的 U RL。
● asynch :如果希望使用异步连接则为 true,否则为 false。该参数是可选的,默
认为 true。
● usernam e :如果需要身份验证,则可以在此指定用户名。该可选参数没有默认
值。
● password :如果需要身份验证,则可以在此指定口令。该可选参数没有默认
值。
通常使用其中的前三个参数。事实上,即使需要异步连接,也应该指定第三个参数
为 “true”。这是默认值,但坚持明确指定请求是异步的还是同步的更容易理解。
将这些结合起来,通常会得到 清单 9 所示的一行代码。
清单 9. 打开请求面及其连接脚本之间的网络和数据传递,当调用open() 方法时将看不到任何通信。不清楚为何选用
了这个名字,但显然不是一个好的选择。
unction getCustom erInfo() {
var phone = docum ent.getElem entById("phone").value;
var url = "/cgi-local/lookupCustom er.php?phone=" + escape(phone);
request.open("G ET", url, true);
}
一旦设置好了 U RL,其他就简单了。多数请求使用 G ET 就够了(后面的文章中将看
到需要使用 PO ST 的情况),再加上 U RL,这就是使用 open() 方法需要的全部内容

 

H TTP 就绪状态表示请求的状态或情形。它用于确定该请求是否已经开始、是否得到了响应或者请求/响应
模型是否已经完成。它还可以帮助确定读取服务器提供的响应文本或数据是否安全。在 Ajax 应用程序中需
要了解五种就绪状态:
● 0:请求没有发出(在调用 open() 之前)。
● 1:请求已经建立但还没有发出(调用 send() 之前)。
● 2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。
● 3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。
● 4:响应已完成,可以访问服务器响应并使用它。

 

 

 

元素节点
虽然会大量使用元素节点,但很多需要对元素执行的操作都是所有节点共有的方法和属性,而不是元素特有的方法
和属性。元素只有两组专有的方法:
1. 与属性处理有关的方法:
H getAttribute(nam e) 返回名为 nam e 的属性值。
H rem oveAttribute(nam e) 删除名为 nam e 的属性。
H setAttribute(nam e, value) 创建一个名为 nam e 的属性并将其值设为 value。
H getAttributeN ode(nam e) 返回名为 nam e 的属性节点(属性节点在 下一节 介绍)。
H rem oveAttributeN ode(node) 删除与指定节点匹配的属性节点。
2. 与查找嵌套元素有关的方法:
H getElem entsByTagN am e(elem entN am e) 返回具有指定名称的元素节点列表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值