在下面的jquery函數中,有人可以向我解釋爲什麼「第二個」在「first」之前執行?我假設整個$ .post請求應該在瀏覽器移動到下一行代碼之前完成,但似乎並沒有發生。
function getGUID() {
$.post(getGUIDScript, function(data, textStatus) {
alert("first");
GUID = data;
},
'text');
alert("second");
}
感謝您對下面的回覆。爲了後人的緣故,上面的代碼可以寫成如下所示,等到帖子完成後再繼續。
function getGUID() {
$.ajax({
type: "POST",
url: getGUIDScript,
async: false,
success: function(data) {
alert("first");
GUID = data;
}
});
alert("second");
}
這將引發第一次警報,然後第二次。
任何方法讓它等待它完成?我在$ .post完成之前從函數返回。 – 2009-11-10 01:49:59
我能想到的唯一方法是將執行腳本的其餘部分作爲POST的回調。 – 2009-11-10 01:51:12
查看我的更新。最好的方法是將一個函數傳遞給你的函數,作爲該帖子的回調函數執行。 – tvanfosson 2009-11-10 01:51:23