深入理解ajax同步和异步的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解ajax同步和异步的区别相关的知识,希望对你有一定的参考价值。

  1. 说明:
    同步可以改变外部定义的变量值,异步可以提高加载效率
  2. 示例:
    a. 说明:
    技术分享图片
    b. 原代码:
    <script>
    var a = 0
    function loadDoc(file,async=true){
    if(window.XMLHttpRequest){  // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }else{  // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(async === true){
        xmlhttp.onreadystatechange = function(){
            if(xmlhttp.readyState < 4){
                // 加载中
            }else if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
                // 成功
                xmlDoc=xmlhttp.responseText;
                a = 1
                return xmlDoc
            }else{
                // 失败
                xmlhttp.abort()
                return
            }
        }
    }
    xmlhttp.open("GET",file,async);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send();
    if(async === false){
        xmlDoc=xmlhttp.responseText;
        a = 1
        return xmlDoc
    }
    }
    var ret = loadDoc(‘http://localhost/test.php‘,true)
    console.log(a)
    var ret = loadDoc(‘http://localhost/test.php‘,false)
    console.log(a)
    </script>

以上是关于深入理解ajax同步和异步的区别的主要内容,如果未能解决你的问题,请参考以下文章

AJAX中的同步加载与异步加载

对阻塞,非阻塞,同步,异步的深入理解

普通B/S架构模式同步请求与AJAX异步请求区别(个人理解)

ajax同步与异步的区别

深入理解“同步-异步-阻塞-非阻塞”

AJAX中同步和异步的区别和使用场景