当先锋百科网

首页 1 2 3 4 5 6 7
 

如果是同步(false),返回值是true或false,因为执行完send后,开始执行onreadystatechange,程序会等到 onreadystatechange都执行完,取得responseText后才会继续执行下一条语句,所以returnValue一定有值。
如果是异步(true),返回值一定是null,因为程序执行完send后不等xmlhttp的响应,而继续执行下一条语句,所以returnValue还没有来的及变化就已经返回null了。


所有如果想获得xmlhttp返回值必须用同步,异步无法得到返回值。

同步异步使用xmlhttp池时都要注意:取得xmlhttp时只能新建xmlhttp,不能从池中取出已用过的xmlhttp,因为被使用过的xmlhttp的readyState为4,所以同步异步都会send但不执行onreadystatechange。

同步就是发送和接受数据的双方保持步调一致,发送数据方发送数据后,必须等到接受数据方发回了接受到了数据的信息后,才能做下面的事情;而作为接收数据方,在决定接收后,必须接收到数据后才能做下面的事情,它需要不断地轮询接收缓冲区有没有数据,又称为阻塞方式。   
异步则是在发送和接收数据时还可以做其它的事情,又称为非阻塞方式。