zoukankan      html  css  js  c++  java
  • Ajax请求中的async:false/true的作用[转]

    test.html

    <a href="javascript:void(0)" onmouseover="testAsync()">

    asy.js

    function testAsync(){
        var temp;
        $.ajax({
            async: false,
            type : "GET",
            url : 'tet.php',
            complete: function(msg){
                alert('complete');
            },
            success : function(data) {
                alert('success');
                temp=data;
            }
        });
        alert(temp+'   end');
    }

    tet.php

    <?php

        echo "here is html code";
        sleep(5);

    ?>

    async: false,(默认是true);
    如上:false为同步,这个 testAsync()方法中的Ajax请求将整个浏览器锁死,
    只有tet.php执行结束后,才可以执行其它操作。

    当async: true 时,ajax请求是异步的。但是其中有个问题:testAsync()中的ajax请求和其后面的操作是异步执行的,那么当tet.php还未执行完,就可能已经执行了 ajax请求后面的操作,
    如: alert(temp+'   end');
    然而,temp这个数据是在ajax请求success后才赋值的,结果,输出时会为空。

  • 相关阅读:
    浅尝《Windows核心编程》之 等待函数
    linux 下 解压rar的过程
    一些多线程编程的例子(转)
    js数组操作《转》
    缩略图片处理<收藏>
    .net 框架
    详解NeatUpload上传控件的使用
    NHibernate工具
    xml xpath语法《转》
    C#事务技术
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/6366994.html
Copyright © 2011-2022 走看看