我從兩個rest api創建動態菜單。菜單將由父母/子女關係創建。這意味着父ajax響應的id將傳遞給子ajax來獲取子記錄。根據對方調用兩個ajax調用,但沒有異步
問題是當我使用async false
爲我的孩子AJAX調用我的網站變得緩慢,當我刪除它比我的菜單不呈現。一些幫助。
我的代碼調用父
var url;
url = "/_api/lists/getbytitle('GlobalTopNavMenu')/items?$select=Id,Title,Image,hasSubMenu,Link&$filter=Location eq 'GlobalNavigation'";
html = "<ul class='nav navbar-nav nav-topmrgn'>";
$.ajax({
url: url,
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
success: function(data) {
$.each(data.d.results, function(i, item) {
if (item.hasSubMenu == "Yes") {
html += "<li class='dropdown yamm-fw borderLeftY'><a href='#' title='' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>" + Res[item.Title] + "<b class='caret'></b></a>";
html += getSubMenu(item.Id) + "</dl>";
html += "<dl class=''><dd class='picHolder'><img alt='' src='/PublishingImages/" + item.Image + "'/></dd></dl></div></div></li></ul></li>";
} else
html += "<li class='yamm-fw borderLeftY'><a href='" + item.Link + "' title='' class='dropdown-toggle' role='link' aria-haspopup='true' aria-expanded='false'>" + Res[item.Title] + "</a></li>";
})
html += "</ul>";
$("#navbar").empty();
$("#navbar").append(html);
}
});
兒童通話
function getSubMenu(id) {
var url = "/_api/lists/getbytitle('GlobalSubNavMenu')/items?$select=Id,Title,Link,ParentMenu/Id,root&$filter=ParentMenu/Id eq " + id + "&$expand=ParentMenu/Id";
var html = "";
$.ajax({
url: url,
method: "GET",
async: false,
headers: {
"Accept": "application/json; odata=verbose"
},
success: function(data) {
if (data.d.results.length < 6)
html += "<ul class='dropdown-menu width500 spaceLeft'>"; //
else
html += "<ul class='dropdown-menu width800 spaceLeft'>";
html += "<li><div class='yamm-content'><div class='row'><dl class='col-sm-3 mega-menu colborderRight'>";
$.each(data.d.results, function(i, item) {
if (i !== 0 && i % 6 == 0)
html += "</dl><dl class='col-sm-3 mega-menu colborderRight'><dd class=''><a href=/" + (item.root ? "" : lang) + item.Link + ">" + Res[item.Title] + "</a></dd>";
else
html += "<dd class=''><a href=/" + (item.root ? "" : lang) + item.Link + ">" + Res[item.Title] + "</a></dd>";
});
}
});
return html;
}
如果我刪除從子功能異步假比菜單將不會呈現。那我該怎麼做。
也許這? http://api.jquery.com/jQuery.when/ –
請問你可以幫助我的ajax – Milind