javascript - 關于ajax異步的問題
問題描述
async 默認是 true,即為異步方式,$.Ajax 執(zhí)行后,會繼續(xù)執(zhí)行ajax后面的腳本,直到服務器端返回數(shù)據(jù)后,觸發(fā)$.Ajax里的success方法,這時候執(zhí)行的是兩個線程。若要將其設置為false,則所有的請求均為同步請求,在沒有返回值之前,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。
這個其他操作具體舉個例子呢,是指 http 請求還是 js 腳本?
問題解答
回答1:先上圖
async 為 false 的時候,阻塞代碼直到 ajax 調用返回,所以是先執(zhí)行的 done(即 success) 再執(zhí)行的 ajax 調用之后的那句 console.log。
async 為 true(默認) 的時候,不阻塞代碼,所以下面的 console.log 先執(zhí)行,等 ajax 返回之后再執(zhí)行的 done 里面的 console.log。
回答2:指js腳本http://transcoder.tradaquan.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%401%2Csz%401320_2003%2Cta%40iphone_1_10.3_1_11.5/baiduid=3ECCA1E6D2665DB48EFEBB60D9D9084F/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=8260698868132866872&order=1&fm=alhm&h5ad=1&srd=1&dict=32&tj=h5_mobile_1_0_10_title&w_qd=IlPT2AEptyoA_yivDVKcCTpsvgzWOeIntjcXa3jSqfgrUO_&sec=21456&di=8e54227838fdccf9&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAVDb6QHOTCU8sumX0sqdFtXLR_7Mi8xR_qbIwdzZz
回答3:$.Ajax 后面的 js 腳本。(最好不要使用腳本這個詞)
回答4:如果ajax是同步的,就是說js順序執(zhí)行,http請求是ajax發(fā)的,js是就是js,不要混為一談。用戶其他操作,應該是指用戶觸發(fā)了和js有關的操作。如果ajax后面有綁定某個元素的時間,是可以觸發(fā)的。最終總結就是,當前js腳本,同步ajax時,腳本順序執(zhí)行;異步ajax時,異步執(zhí)行,所謂異步執(zhí)行就是,執(zhí)行到ajax時,不等請求是否返回,直接執(zhí)行ajax之后的js語句。
相關文章:
1. javascript - JS設置Video視頻對象的currentTime時出現(xiàn)了問題,IE,Edge,火狐,都可以設置,反而chrom卻...2. java固定鍵值轉換,使用枚舉實現(xiàn)字典?3. 如何為每個應用程序配置tomcat 6的logs / catalina.out。(為sys.out,sys.err配置Web應用程序特定的日志文件)4. css - ionic中的柵格布局如何讓文字內(nèi)容多少不同的每一列中的內(nèi)容都能垂直居中?5. php自學從哪里開始?6. phpstady在win10上運行7. java - 我設置了cookie的max age,但是cookie依然在關閉游覽器后消失了8. javascript - 手機瀏覽器會有一個默認的viewport視圖,將頁面縮放后顯示在手機屏幕?9. 這是什么情況???10. javascript - 微信網(wǎng)頁開發(fā)從菜單進入頁面后,按返回鍵沒有關閉瀏覽器而是刷新當前頁面,求解決?
