ajax之将 'Ajax updated' 数据集与交叉过滤器一起使用

thcjp 阅读:49 2025-06-02 22:19:02 评论:0

我有一个关于伦敦二氧化碳排放的非常大的数据集(大约 500 000 条记录......),我想使用交叉过滤器与 map 和图表一起显示。
出于性能原因,我想事先按行政区进行查询,所以我做了一个 ajax 函数,当我点击一个行政区时会动态地执行此操作(想象一下带有行政区边界的伦敦 map ,我们可以在其中单击它们)。
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文件。当我单击一个行政区时,警报功能会显示数据已更新。
但是要使用 crossfilter,我想要一个全局变量,当你点击一个自治市镇时,它会更新,这要归功于 load_data 函数,但它不起作用 -> 变量保持与初始化相同的值。

我不知道我是否足够清楚,但您认为有更新此全局变量的解决方案,从而更新交叉过滤器数据吗?就像是 :
layer.on("click", function (e) { 
             londonData = load_data(/*name of the layer clicked on*/) 
        }); 
dataset = crossfilter(londonData); 

最后,我希望我的图表在我点击一个行政区时更新,所以当我点击一个时,“数据集”变量必须改变。不知道这是否可能,或者我做错了什么......
无论如何,在此先感谢您的帮助。

请您参考如下方法:

我认为由于 ajax 请求是异步的,你必须在成功函数中应用 crossfilter 函数。因此,您只有在加载 ajax 数据后才能创建和使用交叉过滤器数据。


标签:ajax
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号