我有一个非常大的数据集(大约 500 000 条记录...),关于伦敦的二氧化碳排放量,我想使用交叉过滤器与地图和图表一起显示。出于性能的原因,我想事先按行政区进行查询,所以我做了一个 ajax 函数,当我点击行政区时会动态执行此操作(想象一下伦敦地图,上面有行政区边界,我们可以点击它们)。Ajax 代码工作正常:
function load_data(str){
var londonData = null;
$.ajax({
url: "php/london-data.php",
data: "name='"+str+"'",
type: 'get',
async: false,
success: function(data) {
londonData = data;
}
});
alert(JSON.stringify(londonData));
return londonData;}
它返回一个 json 文件。当我单击一个自治市镇时,警报功能会显示数据已更新。但是要使用交叉过滤器,我希望有一个全局变量,当您单击一个自治市镇时,由于 load_data 函数,它会更新,但它不起作用 -> 变量保持与初始化时相同的值。
我不知道我是否足够清楚,但你认为有一个解决方案来更新这个全局变量,从而更新交叉过滤器数据吗?就像是 :
layer.on("click", function (e) {
londonData = load_data(/*name of the layer clicked on*/)
});
dataset = crossfilter(londonData);
最后,我希望我的图表在我点击一个自治市镇时更新,所以当我点击一个自治市镇时,“数据集”变量必须改变。不知道这是否可能,或者我是否做错了......无论如何,提前感谢您的帮助。