我试图弄清楚如何传递一个大型查询,该查询已转换为一个由大约500000多个条目的列表构成的JSON字符串,并传递至模板。我目前的操作方式适用于较小的对象:
return render_template('/dataprocessing.html', data=json.dumps(result))
data = json.dumps(result)的地方是我将大JSON字符串传递给模板的方式。但是,存储在客户端中的此字符串的大小大大减慢了我的应用程序的速度。我也知道,还有另一种方法通过cookie传递它,但这比这种方法更糟糕,不适用于较大的尺寸。
我的应用程序所做的是它通过SQL查询从数据库中呈现大量数据。我想通过逐行浏览数据并创建表示这些行的DOM元素来可视化模板中的数据。
我一直在寻找时间,并尝试实施针对该问题的解决方案,但收效甚微,因此,如果有人能指出正确的方向,我将不胜感激。
答案 0 :(得分:0)
这是要传递到浏览器的大量数据,这会阻塞任何用户的计算机。例如,假设Google显示的结果是100,000,而不是10或20,那么搜索结果的呈现速度将非常慢。如果您想可视化数据,我想您可能希望在发送模板之前对其进行预聚合,以便“图形就绪”。让我们举一个简单的例子:
id,name,publisher
1,war and peace,penguin
2,romeo and juliet,harper
3,the trial, penguin
您可能不想将其传递到预先聚合的模板中,例如:
[
{
"publisher": "penguin",
"count": 2,
"items": ["war and peace", "the trial"]
},
{
"publisher": "haper",
"count": 1,
"items": ["romeo and juliet"]
}
]
通过这种方式,您可以在将数据发送到模板之前 进行处理,并且在上面的示例中,可以执行条形图之类的操作,并且onHover可以显示其拥有的书本(或者也许是前5名-如果有大量数据,大多数数据将在webview中被截断)。