Jquery 同步请求和异步请求(执行顺序)

function show(NoticeId) {
            $.post('NoticeShow.aspx?operate=GetDetail' + '&NoticeId=' + NoticeId + '&id=' + Math.random(), function (notice) {//第一
                if (notice != null) {//得到返回的json,并赋值
                    $("#txtNoticeTitle").val(notice.NoticeTitle);
                    $("#txtNoticeContent").val(notice.NoticeContent);
                    $("#lblNoticeType").html(notice.NoticeType);
                    $("#txtRemark").val(notice.Remark);
                }
            }, 'json');
            $('#show').window("open");//第二
            $('#show').show();//第三
        }

 


这样的请求是异步的,顺序是结果是:第二,第三执行完成后,第一返回结果。但我就是想让他先返回结果,然后执行第二、第三。

$.post和$.get 我没有找到怎么设置同步,但$.ajax可以

        function show(NoticeId) {
            $.ajax({
                type: "POST",
                url: 'NoticeShow.aspx?operate=GetDetail' + '&NoticeId=' + NoticeId + '&id=' + Math.random(),
                async: false, //设为false就是同步请求
                cache: false,
                success: function (notice) {
                            if (notice != null) {//得到返回的json,并赋值
                                $("#txtNoticeTitle").val(notice.NoticeTitle);
                                $("#txtNoticeContent").val(notice.NoticeContent);
                                $("#lblNoticeType").html(notice.NoticeType);
                                $("#txtRemark").val(notice.Remark);
                            }
                }
            });
            $('#show').window("open");
            $('#show').show();
        }

执行顺序是同步的:请求返回结果,然后才执行下面。(ps:貌似这样容易卡死)

posted @ 2013-02-27 10:52  Archosaur  Views(13181)  Comments(0Edit  收藏  举报