问题:要一个AJAX中的回调函数中又进行了一个AJAX调用,并且这个AJAX是在一个循环调用的,不论设置async属性是true和false页面卡死。
解决方法:async属性都设为true,不用循环调用,用递归调用
第一层AJAX:
var currectNo = 0; $.ajax({ type: 'POST', url: '/ImportData/GetAllFiles', async: true, success: function (data) { datacount= data.length; impdatas(data, currectNo); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert('加载失败!原因如下:' + errorThrown); } }); });
第二层AJAX:
function impdatas(filearray,i)
{
$.ajax({
type: 'POST',
url: '/ImportData/importInterpData',
data: 'fileFullPath=' + filearray[i],
async: true,
success: function (data) {
if (i != datacount - 1) {
impdatas(filearray, currectNo++);
}
}
});