首頁  >  問答  >  主體

javascript - 關於ajax異步的問題

async 預設是true,即為非同步方式,$.Ajax 執行後,會繼續執行ajax後面的腳本,直到伺服器端返回數據後,觸發$.Ajax裡的success方法,這時候執行的是兩個執行緒。若要將其設定為false,則所有的請求均為同步請求,在沒有傳回值之前,同步請求將鎖住瀏覽器,使用者其它操作必須等待請求完成才可以執行。

這個其他操作具體舉個例子呢,是指 http 請求還是 js 腳本?

typechotypecho2635 天前964

全部回覆(4)我來回復

  • 天蓬老师

    天蓬老师2017-07-05 10:54:26

    先上圖

    asyncfalse 的時候,阻塞代碼直到 ajax 呼叫返回,所以是先執行的 done(即 success) 再執行的 ajax 調用之後的那句 (預設) 的時候,不阻塞程式碼,所以下面的

    console.log

    true(預設) 的時候,不阻塞程式碼,所以下面的 console.logtrue(預設) 的時候,不阻塞程式碼,所以下面的 console.logtrue(預設) 的時候,不阻塞程式碼,所以下面的 console.log

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:54:26

    指js腳本
    http://transcoder.tradaquan.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%401%2Csz%401320_2003%2Cta%401_10103532Cta%403%2Cta%4001_103531035353/303725ta% =3ECCA1E6D2665DB48EFEB60D9D9084F/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=8260698868132866872&order=1&fm=alhm&h5ad=1&w _qd=IlPT2AEptyoA_yivDVKcCTpsvgzWOeIntjcXa3jSqfgrUO_&sec=21456&di=8e54227838fdccf9&bdenc=1&nsrc=IlPT2AEptptA_yixCFOxnW&bdenc=1&nsrc=IlPT2AEptA_yixv 0sqdFtXLR_7Mi8xR_qbIwdzZz

    回覆
    0
  • 欧阳克

    欧阳克2017-07-05 10:54:26

    $.Ajax 後面的 js 腳本。 (最好不要使用腳本這個字)

    回覆
    0
  • 迷茫

    迷茫2017-07-05 10:54:26

    如果ajax是同步的,就是說js順序執行,http請求是ajax發的,js是就是js,不要混為一談。
    用戶其他操作,應該是指用戶觸發了和js有關的操作。如果ajax後面有綁定某個元素的時間,是可以觸發的。
    最終總結就是,當前js腳本,同步ajax時,腳本順序執行;非同步ajax時,非同步執行,所謂非同步執行就是,執行到ajax時,不等請求是否返回,直接執行ajax之後的js語句。

    回覆
    0
  • 取消回覆