把我的頭髮拉出來。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