非同期はユーザーフレンドリーではないという記事をたくさん読みましたが、次の手順では、非同期を1つずつ実行する必要があるため、非同期を削除するとすべてが台無しになります。
for (var k = 0; k < selectedValueArr.length - 1; k++) {
var value = selectedValueArr[k];
$.ajax({
type: "POST",
url: dm + "Services/AjaxService.asmx/GetCityCheck",
dataType: "json",
data: JSON.stringify({ code: value }),
contentType: "application/json; charset=utf-8",
async: false,
success: function(data) {
html += '<li style="height: 25px;"><div style="font-weight: bold; background-color: #91c8e2; padding: 3px 3px; font-size: 13px;">' + document.getElementById('stateName' + selectedValueArr[k]).innerHTML + '</div></li>';
var datafromServer = jQuery.parseJSON(data.d.toString());
$.each(datafromServer, function(key, value) {
html += '<li style="height: 18px; font-size: 12px;"><span pvalue="' + key + '"><input id="chkCity' + key + '" type="checkbox" title="' + value + '" style="border: 0px;" onchange="javascript:CityCheck(this)"><span title="' + value + '" id="cityName' + key + '">' + value + '</span></span></li>';
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
}
本当にブラウザがハングアップするので、誰かが async の代わりになるものを教えてもらえますか...