我有以下情况。我想从服务器加载文件A,然后(取决于A的内容)将尝试加载文件A1,A2,A3,...... An,每个文件A[1-n]
将依次加载其他文件,这可以继续进行。是的,它已经结束了。
不幸的是,我开始意识到我需要使用 synchronized $.ajax requests
,否则第一个 $.ajax 调用(当完成加载文件 A 时)只会返回而不会遍历其余文件。我的功能如下:
loadFile = function (path, file, scope)
{
$.ajax ({
url: url,
type: 'GET',
dataType: 'text',
success: function (responseData)
{
var lines = responseData.split("\n");
for (var j = 0; j < lines.length; j++)
{
if (lines[j].charAt(0) === 'F')
loadFile (arguments);
}
}
});
}
我的第一个问题是为什么我不能在上述选项中添加“async:false”,而是必须使用$.ajaxSetup({async: false});
,否则它不起作用。
我的第二个问题是这是用于递归完成这项工作的正确模式。
我的第三个问题是我如何知道整个过程何时完成。我想不通。