我有一个Flask应用程序,它接收来自javascript的请求,查询数据库,然后将数据发送回来以使用D3.js可视化。对数据库的调用返回rougly 5mb的数据。响应从烧瓶发送到完成加载到d3中的javascript变量之间,响应时间非常慢(大约20秒)。
知道为什么在我的d3和Flask之间发送数据这么慢?
如果我只是将json字符串打印到浏览器中的空白页面,则响应几乎是即时的。如果我只是将json字符串写入静态文件然后使用d3加载,我会得到类似(快速)的性能。我相当确定问题只是将数据直接传递给d3。我还尝试在查询中使用$.getJSON
调用flask,结果同样很慢。为什么Flask在返回json字符串时速度慢但不只是将其呈现给浏览器?
在D3中我打电话:
d3.json("/test", function(data) {
console.log(data);
});
烧瓶调用示例
@app.route('/test')
def get_json_object():
a = {....some large dictionary....}
return jsonify(**a)