Ajax会进行什么类型的调用?

时间:2012-01-12 14:28:26

标签: javascript ajax

嗨我想问一下AJAX,AJAX对服务器进行同步或异步调用。从它的名字来看它是ASYNCHRONOUS JS& XML,但是当涉及向服务器发送请求时,它是同步还是异步?帮助将被赞赏

5 个答案:

答案 0 :(得分:3)

这是一个松散定义的流行语。 JS可以同时做到。同步调用是锁定的,但几乎总是应该避免。

答案 1 :(得分:2)

我认为如果您在此上下文中定义了同步和异步的含义,它会对您有所帮助。

同步调用阻止执行执行它的Javascript线程。这意味着如果您有以下代码:

console.log('Before');
xhr.send();
console.log('After');

在请求完成且服务器返回数据之前,您不会看到After消息。

异步调用不会阻止执行执行它的Javascript线程。这意味着,对于上面的相同代码块,After消息会立即触发,并且不会等待请求完成。因为代码的执行在异步调用中继续,所以您需要使用回调来处理结果。这就是onreadystatechange()事件/方法的用途。

当您调用open()对象的XmlHttpRequest方法时,可以选择进行哪种类型的调用,同步或异步。通过将true传递给第三个参数,请求是异步的,如果传递false它是同步的。

答案 2 :(得分:1)

它实际上可以是同步和异步。

答案 3 :(得分:1)

实际上,它可以是同步的和异步的。当同步进行呼叫时,在请求完成并收到响应之前,代码不会继续。在许多情况下,这不是您想要的,因为这会冻结您网站上所有javascript驱动的部分。

答案 4 :(得分:1)

请求是异步的,因为浏览器不能等待请求的响应。这意味着一方面您可以进行同步,例如您发送请求并显示等待屏幕,但另一方面,您可以将您的请求发送到服务器,服务器随时响应。您的浏览器可以处理响应,但用户可以在不受页面影响的情况下工作。