摘要:在外層使用循環時再去調用就會導致順序錯亂。比如條數據順序正常是,現在執行順序可能是。一個是標題匹配內容會有問題,另外,展示的順序也會出錯。暫無相關信息結果值單位參考范圍無無無正常值范圍是遞歸函數,是變量。調用的內層的內容當然也是正確的。
在外層使用for循環時再去調用Ajax就會導致順序錯亂。
for(var i=0;i比如6條數據順序正常是123456,現在執行順序可能是135246。這樣一來,比如你想外層的Ajax得到標題以后再在內層匹配相應內容就會出現錯亂。一個是標題匹配內容會有問題,另外,展示的順序也會出錯。
解決方案是使用遞歸,遞歸可以幫助你正確的順序去調用Ajax,在遞歸每一步的索引也是正確的。
function getResult(){ if(currentIndex>=result.recentResult.length){ return; } $.ajax({ type:"POST", url: remoteIp + "i/people/checkresult/getTestDetail.do", data:{ itemId:result.recentResult[currentIndex].itemId, type:"0", hospitalCode:"1", instrumentType:"", checkDate:result.recentResult[currentIndex].itemId.split("_")[1] }, dataType:"json", beforeSend: function (XMLHttpRequest) {XMLHttpRequest.setRequestHeader("Authorization", decodeURIComponent(getCookie("token")).replace(/ | |( )|(u0085)|(u2028)|(u2029)/g, "").replace(" ", ""));}, success:function(result1){ currentIndex++; console.log(result.recentResult[t].itemName); console.log(result1); if(result1.detail.length==0){ jianyan+=""+result.recentResult[t].itemName+"("+result.recentResult[t].itemId.split("_")[1]+")
暫無相關信息
"; }else{ jianyan=""+result.recentResult[t].itemName+"("+result.recentResult[t].itemId.split("_")[1]+")
"; } for(var j=0;j 結果值 單位 參考范圍 "+result1.detail[j].itemDetail+"
"+result1.detail[j].reportValue+""+result1.detail[j].unit+" 正常值范圍:"+result1.detail[j].refRange+" "; } jianyan+="
"; theResult.innerHTML += jianyan; jianyan=""; t++; getResult(); } }); }
getResult是遞歸函數,t是變量。這個函數外層還有一個Ajax。result就是外層的結果,result1是內層數據result.recentResult[t].itemName 按照遞歸以后的標題就是按順序進行的了。調用的內層Ajax的內容當然也是正確的。
參考:https://blog.csdn.net/yuan882...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54174.html
摘要:在外層使用循環時再去調用就會導致順序錯亂。比如條數據順序正常是,現在執行順序可能是。一個是標題匹配內容會有問題,另外,展示的順序也會出錯。暫無相關信息結果值單位參考范圍無無無正常值范圍是遞歸函數,是變量。調用的內層的內容當然也是正確的。 在外層使用for循環時再去調用Ajax就會導致順序錯亂。 for(var i=0;i=result.recentResult.length){ ...
摘要:在外層使用循環時再去調用就會導致順序錯亂。比如條數據順序正常是,現在執行順序可能是。一個是標題匹配內容會有問題,另外,展示的順序也會出錯。暫無相關信息結果值單位參考范圍無無無正常值范圍是遞歸函數,是變量。調用的內層的內容當然也是正確的。 在外層使用for循環時再去調用Ajax就會導致順序錯亂。 for(var i=0;i=result.recentResult.length){ ...
摘要:而是在調用發出后,被調用者通過狀態通知來通知調用者,或通過回調函數處理這個調用。請求程序發出請求,從服務器端獲取數據,并設置了回調函數。然后,瀏覽器會設置偵聽來自網絡的響應,拿到數據后,將該回調函數插入到事件循環。 并發與并行 并發是指兩個或多個事件鏈隨時間發展交替執行,以至于從更高的層次來看,就像是同時運行(但在任意時刻只處理一個事件) 并發的關鍵是你有處理多個任務的能力,不一定同...
摘要:每個線程的任務執行順序都是先進先出在運行的環境中,有一個負責程序本身的運行,作為主線程另一個負責主線程與其他線程的通信,被稱為線程。主線程繼續執行我是第一主線程執行完畢,從線程讀取回調函數。 前言 上星期面試被問到了事件執行順序的問題,想起來之前看《深入淺出Node.js》時看到這一章就忽略了,這次來分析一下JavaScript的事件執行順序。廢話少說,正題開始。 單線程JavaScr...
摘要:異步請求線程在在連接后是通過瀏覽器新開一個線程請求將檢測到狀態變更時,如果設置有回調函數,異步線程就產生狀態變更事件,將這個回調再放入事件循環隊列中。 基礎:瀏覽器 -- 多進程,每個tab頁獨立一個瀏覽器渲染進程(瀏覽器內核) 每個瀏覽器渲染進程是多線程的,主要包括:GUI渲染線程 JS引擎線程 也稱為JS內核,負責處理Javascript腳本程序。(例如V8引擎) JS引擎線程負...
閱讀 2882·2021-09-28 09:36
閱讀 3608·2021-09-27 13:59
閱讀 2484·2021-08-31 09:44
閱讀 2278·2019-08-30 15:54
閱讀 2352·2019-08-30 15:44
閱讀 1180·2019-08-30 13:45
閱讀 1223·2019-08-29 18:38
閱讀 1207·2019-08-29 18:37