基於jquery的$.ajax async使用
短摘:
這個ajax請求則為同步請求,在沒有返回值之前,alert(temp)是不會執行的。如果async設置為:true,則不會等待ajax請求返回的結果,會直接執行ajax後面的語句。
因為現在大部分的瀏覽器都會擋自動跳出的視窗,除非是使用者有 click 的動作。所以,假設今天我們需要使用者在點擊後,透過 ajax 去做一些判斷,依結果去彈跳視窗時,直覺會在 ajax 成功後去呼叫 window.open ,但這樣是會被瀏覽器擋下來的,解法就是用 async ,將 ajax 改成同步,然後將 window.open 放到 ajax 的後面去執行,如下:
$("#but").on("click", function(){
$.ajax({
async: false,
(略)
});
window.open(略);
});
No comments:
Post a Comment