把我的头发拉出来。jQuery,multipe JSON文件,递归AJAX
jQuery的,多JSON文件&阿贾克斯
我有一个收集数据和倾倒JSON文件到一个文件夹在我的网络服务器
我想可视化数据的Python脚本。
基本上我首先绘制一个SVG地图并用一个虚拟json文件着色。随后我想使用JSON数据对其进行着色。每个JSON文件都会代表一个完整的地图渲染(着色)。
我正在使用Ajax调用PHP脚本来返回目录中的文件。然后,我想使用Ajax(或简写.getJson)在该文件中添加数据 - 为地图上色,然后转到下一个(最终结果是动画)。问题在于AJAX的异步特性,并没有对Ajax位的及时执行和完成的任何控制。显然,我不想进行同步调用,因为我不想锁定浏览器。
这里是我的代码(道歉 - 它是相当沉重的)
jQuery(document).ready(function() {
$(function() {
var map, c = [];
var dep_data;
var val = {};
var max= 0;
var vals = new Array();
c = $('#map');
c.height(c.width()*.5);
drawMap('mapData.json');
function drawMap(url){
console.log(url);
$.ajax({
url: 'mapData.json',
dataType: 'json',
success: function(data) {
dep_data = data;
map = window.m = $K.map('#map', 600, 800);
map.loadMap('ireland.svg', function() {
map.loadStyles('./mapping_files/style.css');
map.addLayer({
id: 'regions',
key: 'name-1'
});
colourMap(dep_data);
var mapData = $.ajax({
url: './php/getfiles.php',
type : 'POST',
dataType: 'json',
success: function (files){
for (_a in files.response){
for (_b in files.response[_a]){
$.ajax({
url: files.response[_a][_b],
dataType: 'json',
success: function (json){
colourMap(json);
$(this).dequeue();
}
});
}
}
},
error: function (files){
console.log(files.message);
},
});
});
}
});
}
colourMap = function(data) {
//do the coloring in...
}
}); });
确实是“故障”。 – 2012-04-13 14:17:05
现在通过乌尔代码寻找 – 2012-04-13 14:17:30
为什么downvote?不是一个可怕的问题。标题可能会更清晰,但不保证新用户可以下注。 – jammypeach 2012-04-13 14:18:57