我有一个数组,用于存储一些需要下载的 XML 文件的 url。 成功后,需要处理这些文件。但这就是问题所在。 问题很明显:
for (var i = 0; i < loadMaps.length; i++){
var currentMap = loadMaps[i];
$.ajax({
type: "GET",
url: currentMap,
dataType: "xml",
success: function(xml, textStatus, error){
processMap(xml, currentMap)
}
});
}
如您所见,它遍历数组并下载正确的 map 。太好了。
但是当文件下载完成时,另一个文件也正在下载!
因此 currentMap
变量发生了变化。
因此这将导致两个文件以相同的名称进行处理。这是错误的。
解决此问题的最佳方法是什么?
最佳答案
这是因为默认情况下 JQuery 将异步设置为 true。如果您需要特定顺序的所有内容,您需要将其设置为 false 或将所有内容存储在一个临时对象中,当所有 GET 完成时,该对象将按特定顺序处理。
关于javascript - 错误的参数被设置为在成功的 jquery $.ajax get 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271522/