AJAX同步和异步

本文介绍了AJAX的同步和异步加载方式。通过示例代码xhr.open(),展示了当设置为true(异步)时,请求不会阻塞程序执行;而设置为false(同步)时,程序会等待请求完成再继续。在onreadystatechange事件中,当readyState为4时,表示请求成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 设置同步或异步
    xhr.open("GET","https://jsonplaceholder.typicode.com/users",true);
    // xhr.open("GET","https://jsonplaceholder.typicode.com/users",false);
    // 如果设置了同步加载,程序会卡在 send 部分
    xhr.onreadystatechange = function () {
      // 通过判断 xhr 的 readyState ,确定此次请求是否完成
      if (this.readyState === 4) {
        console.log("请求成功")
      }
    }

现实场景理解
• 同步:一个人在同一个时刻只能做一件事情,在执行一些耗时的操作(不需要看管)不去
做别的事,只是等待
• 异步:在执行一些耗时的操作(不需要看管)去做别的事,而不是等待
Ajax 中的实现
• xhr.open() 方法第三个参数要求传入的是一个 boolean 值,其作用就是设置此次请求是
否采用异步方式执行
• 默认为 true 异步,如果需要同步执行可以通过传递 false 实现
• 如果采用同步方式执行,则代码会卡死在 xhr.send() 这一步
• 为了让这个事件可以更加可靠(一定触发),在发送请求 send() 之前,一定是先注册
readystatechange
• 不论是同步或异步都能触发成功
• 了解同步模式即可,切记不要使用同步模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值