为了账号安全,请及时绑定邮箱和手机立即绑定

在XMLHttpRequest取得相应一课中open()send()onreadystatechange 的执行顺序

为什么通常看到的执行循序是 onreadystatechange 事件在前 ,然后是open(method,url,true),然后再是send() 方法,这个顺序会有影响吗?

正在回答

2 回答

function show(){
var xmlhttp = null;
//创建XHR对象;与if,else一样。
   try{
   xmlhttp = new XMLHttpRequest();
   }
   catch(e){
       try{
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
       }
       catch(e){
       alert("你的浏览器不支持XMLHTTP");
       }
   }
/*监听状态,服务器响应就绪后执行代码或任务;
  只有状态改变了才会触发这个  onreadystatechange   事件(一共触发五次)。
   xmlhttp.onreadystatechange=function(){
   if(xmlhttp.readyState==4 && xmlhttp.status==200){
     //执行后续的任务,responseText,responseXML等等
   }
   }
   //向服务器发送请求。上面的事件就是监听来自服务器的响应的状态,但是只有先发送请求才可以监听。
   xmlhttp.open("GET",url,true);
   xmlsend(null); 
}

这种是经常看到的,顺序我感觉是约定这么写吧。不会有影响。

只有先请求才会有响应,之后才会触发监听事件。

0 回复 有任何疑惑可以回复我~
#1

白船袜七分裤

少了个多行注释符 */ .
2017-10-16 回复 有任何疑惑可以回复我~
#2

qq_面码_2

onreadystatechange最终关心的是readystate=4,且statu=200也就是请求和响应已经完成了,并不需要知道请求的过程怎么样,而且视频里老师好像说过,有时open()和send()也没有发生,所以把open()和send()把进去只会多触发onreadystatechange函数吧,感觉多此一举的感觉,所以才没把他放进去把
2017-11-13 回复 有任何疑惑可以回复我~
#3

qq_面码_2

onreadystatechange最终关心的是readystate=4,且statu=200也就是请求和响应已经完成了,并不需要知道请求的过程怎么样,而且视频里老师好像说过,有时open()和send()也没有发生,所以把open()和send()把进去只会多触发onreadystatechange函数吧,感觉多此一举的感觉,所以才没把他放进去把
2017-11-13 回复 有任何疑惑可以回复我~

不会影响

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Ajax全接触
  • 参与学习       224850    人
  • 解答问题       663    个

本课程通过一个案例,讲解Ajax的相关概念原理实现方式和应用

进入课程

在XMLHttpRequest取得相应一课中open()send()onreadystatechange 的执行顺序

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信