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