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