Thursday, May 29, 2014

[好文][jQuery] 基於jquery的$.ajax async使用

基於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