Ajax的同步与异步

异步

  • 图解

在这里插入图片描述

  • 控制层代码
    // ResponseBody不走视图解析器,将java对象转为json格式的数据
    @ResponseBody
    @RequestMapping("/test/ajax/async.html")
    public String testAsync() throws InterruptedException {
        Thread.sleep(2000);
        return "success";
    }
  • 异步js代码
<script type="text/javascript">
    $(function () {
        $("#asyncBtn").click(function () {
            console.log("Ajax函数之前");
            $.ajax({
                "url":"/test/ajax/async.html",
                "type":"post",
                "dataType":"text",
                "success":function (response) {

                    // success是接收到服务器端响后执行
                    console.log("我得快一点,等下被它超过了="+response)
                }
            });
            // 在$.ajax()执行完成后执行,不等待success()函数
            console.log("看谁速度快,我不会让着你");

        })
    })
</script>
  • 异步执行结果
    在这里插入图片描述
  • 结论

相当于两个线程上的东西,谁也不会刻意等谁(老网易云了),输出结果不一定谁比谁快

同步

  • 同步图解
    在这里插入图片描述

  • 同步js代码

    • "async": false 关闭异步模式
<script type="text/javascript">
    $(function () {
        $("#asyncBtn").click(function () {
            console.log("Ajax函数之前");
            $.ajax({
                "url": "/test/ajax/async.html",
                "type": "post",
                "dataType": "text",
                "async": false, // 关闭异步模式即为同步模式,此时所有操作在同一线程
                "success": function (response) {

                    // success是接收到服务器端响后执行
                    console.log("我反正不着急,它会等我的=" + response)
                }
            });
            // 在$.ajax()执行完成后执行,success()函数
            console.log("等你到海枯石烂");

        })
    })
</script>
  • 同步结果
    在这里插入图片描述
  • 同步结论

等于在同一个线程上执行,Ajax之后的必须等success函数结束,才能执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值