ajax中的非同步請求,導致資料順序可能有問題,改成ajax同步的就好了,
阿新 • • 發佈:2019-02-03
先說明一下ajax同步和非同步的區別,
ajax同步:js程式碼載入到當前ajax的時候,會停止載入頁面中其他程式碼,直到當這個ajax執行完畢之後才會繼續執行頁面中的其他程式碼,
ajax非同步:js程式碼載入到當前ajax的時候,後臺還沒有給響應時,不會等這個ajax執行完,而是直接去執行頁面中的其他程式碼,等後臺給響應了之後,在去執行ajax中的程式碼,這就可能導致返回的資料可能會有問題
問題描述:我在將alert彈出框註釋掉,頁面格式顯示就有問題,不註釋掉,頁面格式顯示就沒問題,
看到這個bug的感受:哇,當時真的是看的我一面懵逼,,,,這麼玄學的程式碼,,,誰能知道為什麼,,,,然後問了一些人,我們的一個朋友跟我說可能是ajax非同步請求導致資料有問題,
廢話不多說了,直接上程式碼!!!
專案中用到了ajax的非同步請求,但是在success方法中,返回的data資料順序有些問題,,或者說返回的資料就是有問題的,
如果說我在上面將alert給註釋掉,我著下面的判斷就會有問題,因為 Alert它是會將後面執行的程式碼暫時掛起的 ,所以加上alert之後,是不會有問題,,,但是專案中怎麼可能讓隨便彈出一些亂七八糟的無用資訊呢
找了一下,之前的方法果然時非同步請求,
於是我就自己寫了個同步請求的方法,資料正確了,上面的判斷顯示頁面格式就正確了,成功解決~~~