我試圖按順序進行ajax調用,然後應用把它們附加到主html文件的句柄。但我的下面的代碼只是在第一個請求中掛起。當我手動嘗試此網址時,它會返回HTML。但不是當我嘗試通過。我在這裏犯了什麼邏輯錯誤。ajax調用掛在jquery
var i = 0;
var flagArray = new Array(data.length);
while (i < data.length) {
if (flagArray[i] == 'done') {
i++;
console.log(i);
}
if (flagArray[i] != 'fired') {
flagArray[i] = 'fired';
$.get('commonCore/templates/' + data[i].templateHtml, function (html) {
console.log(data[count].classSelect, i);
var filterTemplate = Handlebars.compile(html);
replaceFilterTemplate(filterTemplate, data[i].classSelect);
flagArray[i] = 'done';
});
}
}
數據是JSON:
[
{
"templateHtml": "dcdcsFilterOptions.html",
"classSelect": "dcdcsOptions"
},
{
"templateHtml": "dashBoardLeftInsight.html",
"classSelect": "leftpanel"
},
{
"templateHtml": "advanceFilterOptions.html",
"classSelect": "advancedOptions"
},
{
"templateHtml": "reportFilterOptions.html",
"classSelect": "reportdashboard"
}
]
在鉻網絡示出了用於將第一請求永遠因此一切都掛掛起狀態。但manuall嘗試返回數據。
你的瀏覽器線程一個無限循環。 Ajax回調無法執行,因爲循環沒有終止。所以,'flagArray [i]'不能設置爲''完成','i'不會增加。爲什麼要按順序執行Ajax調用有特定的原因嗎?爲什麼不能並行運行它們? –
是的先生,因爲這將創建我的網頁,並依賴於第一個到下一個。接下來只會追加到第一個底部的id,這是他們在html中...所以 – user3115998