xmlファイルからいくつかの情報をロードして辞書として使用するjqueryがあり、次にjsonもあります。私は現在コードを機能させていますが、jsonをロードする前に、現在xmlのロードが成功するのを待つ必要があります。私がやりたいのは、xmlとjsonの両方をロードし、データを変数に格納してから、両方がロードされたら別の関数を起動することです。これは可能ですか?
これが私の現在のコードです...
$(document).ready(function () {
var dict = {};
$.ajax({
type: "GET",
url: "/_layouts/SiteLocations.xml",
dataType: "xml",
success: function (xml) {
$(xml).find('type').each(function () {
var key = $(this).find('key').text().replace(/ /g, '_');
var definition = $(this).find('definition').text();
//assign key and definition to dictionary
dict[key] = definition;
});
getsites(dict);
}
});
});
function getsites( dict) {
$.getJSON('/_layouts/SiteLocations.ashx', function (json) {
//handle data
$.each(json, function (i, item) {
//create web friendly id
var sitetype = item.Type.replace(/ /g, '_');
//check if list exists, if not create
if ($('ul[name=' + sitetype).length) {
//add list item
$('ul[name=' + sitetype).append('<li><a href="' + item.URL + '">' + item.Title + '</a></li>');
}
else {
//create list and add item
$('#ListContainer').append('<div id="' + sitetype + '"></div>');
$('#' + sitetype).append(dict[sitetype] + '<br />');
$('#'+sitetype).append('<ul name="' + sitetype + '" />');
$('ul[name=' + sitetype).append('<li><a href="' + item.URL + '">' + item.Title + '</a></li>');
}
});
});
}