$.ajax同步或异步

ajax通常情况下都是执行异步请求,这样用户体验上更友好,但有时还是存在需要同步执行的情况的。

比如,我需要需要通过ajax请求后返回数据,这个数据必须是在ajax后才执行的,此时就要用到asnyc:false(ajax默认是true,即异步);

async:true,(默认):异步,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程。

async:false:同步,所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。



//获取老的数据
                function t() {
                    $.ajax({
                        url: "/home/GetShopHeadStyle",
                        type: "get",
                        dataType: "json",
                        async: false,
                        success: function (data) {
                            if (data.state) {
                                s = eval('(' + data.headStyle + ')');
                            }
                        }
                    //初始化
                    init: function () {
                        t();
                        $('#colorsample-pickh').css("background-color", "#"+s.currentConfig.bgColor)
                    }

}) }

 
  


此地方必须是等t()加载返回数据后才执行出初始化函数,否则初始化颜色则不成功



你可能感兴趣的:(ajax,async)