所以我有一個循環,顯示從一個文本文件到一個頁面的HTML表,並且它這樣做,直到它已經使用了所有可用的匹配行的txt文件從我已經在代碼的另一部分中預先確定的數組中。JavaScript需要關於如何'暫停'一個while循環的想法
唯一的問題是,當循環正在進行,並且所有表正在加載時,頁面就會坐在那裏,看起來空白。加載可能需要很長時間,特別是在緩慢的互聯網上。我需要一次加載大約10個表格,然後在頁面底部有一個按鈕「點擊此處顯示更多結果」,導致加載10個表格,直到所有可用表格都是用過的。
我該怎麼辦?我試過把循環放入循環中,並使用一堆複雜的if語句,但都無濟於事。
這裏是循環:
arrayFinal[arrayln2]="end";
var displayNumber=0;
while(arrayFinal[displayNumber].charAt(0) != "e"){
var boxPath="camper_htmls/"+arrayFinal[displayNumber]+".txt";
boxhttp = new XMLHttpRequest();
boxhttp.open("GET",boxPath,false);
boxhttp.send(null);
var boxHTML = boxhttp.responseText;
var setDivId=document.createAttribute("id");
setDivId.value=("div_"+displayNumber);
var node = document.createElement("div");
node.setAttributeNode(setDivId);
document.getElementById("resultContainer").appendChild(node);
var divIdNumber = ("div_"+displayNumber);
document.getElementById(divIdNumber).innerHTML=boxHTML;
displayNumber++;
}
你必須異步處理您的數據。看看'setTimeout':https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout或者簡單地做一個異步請求。 – 2013-03-15 19:10:52
是否有任何理由讓你的AJAX設置爲同步?這真的是違背技術,這可能是什麼原因造成你的問題 – 2013-03-15 19:12:05
@BenjaminGruenbaum因爲當它設置爲真,它不起作用,我不知道如何解決它。說實話,我不知道實際上有什麼不同。我對這一切都很陌生,所以我仍然有很多東西需要學習。 – nife552 2013-03-15 19:38:01