Ajax同步和异步(Async and Sync)
概念:
同步:一个人在同一个时刻只能做一件事情,在执行一些耗时的操作(不需要看管)不去做别的事,只是等
待
异步:在执行一些耗时的操作(不需要看管)去做别的事,而不是等待
Ajax默认是异步的,但是我们可以通过修改open()的参数来改变是同步还是异步——第三个参数
open(,,true/false)
- true 异步 默认值可不填
- false 同步的
那同步和异步的区别在哪里呢?虽然同步传输我们极小概率用到但是我们还是有必要了解一下
演示:
我们用一段代码来演示效果 其中用到 time 这个方法让我们可以只直观的看到区别
<script>
console.time('async');
var xhrAsync=new XMLHttpRequest();
xhrAsync.open('GET','time.php',true);
xhrAsync.send();
console.log(xhrAsync.responseText);//打印不到返回值
console.timeEnd('async');
-----------------------------------------------------------------------------
console.time('sync');
var xhrSync=new XMLHttpRequest();
xhrSync.open('GET','time.php',false);
xhrSync.send();
console.log(xhrSync.responseText);
console.timeEnd('sync');
</script>
我们可以看到同步和异步在响应事件上有这明显的差距,并且浏览器也有警告(Deprecation)强烈不建议使用同步传输的方式;