zoukankan      html  css  js  c++  java
  • <转>ajax 同步异步问题

    原文:https://blog.csdn.net/wxr15732623310/article/details/76387787 

    看似简单明白的问题说起来却迷迷糊糊,完全没有逻辑,说不到重点上,再来整理思路,去真正搞明白。


    $.ajax({
    type: "post",

    url: "path",

    cache:false,

    async:false,

    dataType: ($.browser.msie) ? "text" : "xml",

    success: function(xmlobj){
    }
    });
       很熟悉的一段代码,异步和同步体现在哪里?他们有什么区别?


    jquery的async属性:默认情况下是true,表示异步,如果是false,表示同步。

    同步:当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个ajax执行完毕后才会继续运行其他代码,页面假死状态消失。

    异步:当ajax发送请求后,在等在server端返回的这个过程中,前台会会继续执行ajax块后面的脚本,直到server端返回正常的结果才会执行success,这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面脚本(另一个线程)


    $.ajax({
    type:"POST",
    url:"Venue.aspx?act=init",
    dataType:"html",
    success:function(result){ //function1()
    f1();
    f2();
    }
    failure:function (result) {
    alert('Failed');
    },
    }
    function2();

                ajax发出请求后,停留在function1等待server返回,同时前台会执行function2(),这个时候出现两个线程。
       当async为false时,ajax请求就是同步的,ajax发送请求后,会等待function1,不会执行下面内容,直到function1执行完毕。
    ---------------------



  • 相关阅读:
    js 小数取整的函数
    VS2015 Apache Cordova
    C# 标签(条码)
    异步提交form的时候利用jQuery validate实现表单验证
    调试javascript
    Chrome 控制台console的用法
    MvcPager分页控件以适用Bootstrap
    更好理解接口
    为什么上班一天都是坐着,但仍会疲惫不堪?(转)
    如何解决空虚感?(转)
  • 原文地址:https://www.cnblogs.com/zhangxiaoxia/p/9811033.html
Copyright © 2011-2022 走看看