Ajax 同步和异步请求数据结果的差异性

每次在使用Ajax请求数据的时候都能碰到一些奇怪的现象,也正因为每次都是模糊的混过去所以也就一次又一次的遇到同样的问题,今天终于定下来好好研究一下这个奇怪的的东西

在用ajax请求数据的时候以前没考虑过会什么时候用同步,什么时候要用异步,只知道它能在不刷新页面的情况下能带回我 想要的信息

讨论:

问题程序

问题就是这样来的,无论callback返回的是什么 alert出来的结果永远都是false,真让人郁闷啊,即使将open方法异步(true)改为同步(false),问题一样存在

几经波折终于找到问题了

1.xmlHttp.open('POST','test.php',true)指明使用异步请求,如果使用同步 则xmlHttp.onreadystatechange 将不起作用了,固访问不到callback函数里面

2.如要同步请求则应该这样做

        createXHR();
        xmlHttp.onreadystatechange = callback2;
        xmlHttp.open('POST','test.php',true);
        xmlHttp.setRequestHeader("If-Modified-Since","0")

        xmlHttp.send();
       
       callback();

 

   function callback() {
   
        _bool = xmlHttp.responseText;
 
        alert(_bool+xmlHttp.readyState);
    
    }

这样程序将顺序执行最终得到_bool想要的值

3.无法将ajax异步得到值赋给全局变量,浏览器不会等到请求结束后在去执行其他程序,如果在callback函数里有类似alert之类的断点操作还是可以改变_bool的值的

 

至此这个小问题已解决了,网上有一些这方面的解答,但不知是我功力不够还是怎么的无法直接了解到其中的意思,故用自己的想法记录一次

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
ajax 异步请求变成同步可以通过在ajax请求中设置`async`参数为`false`来实现。默认情况下,`async`参数的值是`true`,表示异步请求。当将其设置为`false`时,请求将转变为同步请求同步请求会阻塞浏览器的其他操作,直到请求完成才会继续执行后续代码。这种方式不推荐使用,因为同步请求可能导致页面出现假死的情况,影响用户体验。建议仍然使用异步请求,以确保页面的流畅性和响应性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ajax 同步请求异步请求的差异分析](https://download.csdn.net/download/weixin_38593644/12817770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ajax异步同步请求方式](https://blog.csdn.net/a1598452168YY/article/details/127735520)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [浅谈js的ajax的异步和同步请求的问题](https://download.csdn.net/download/weixin_38653155/12993591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值