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:貌似这样容易卡死)