我建立了一个基于Web的数据仪表板,该仪表板显示4个图形-每个图形都包含大量数据点。
当访问URL端点时,Flask调用了我的python脚本,该脚本从sql服务器获取数据,然后开始对其进行操作,最后输出bokeh图。
但是,随着这些图形变大/屏幕上越来越多的图形,网站需要花费很长时间加载-因为必须在显示某些内容之前运行整个功能。
我该如何去懒加载这些?即它会加载第一个(最重要的图),并在运行其他图的功能时显示它,并在它们完成运行时显示它们(显示每种图所在的加载条)。
对于如何实现此功能或类似功能,我会提出一些建议。
谢谢!
答案 0 :(得分:1)
我和你有同样的问题。任何类型的Flask渲染的问题在于,所有数据都被同时处理并传递到页面(即客户端),这通常花费大量时间。不仅如此,服务器Web进程的负载也很大。
我被迫按照注释中的建议实施的解决方案是用空白图表加载页面,然后在安装它们后访问烧瓶API(通过JS ajax),该API将图表json数据返回给客户端。这允许图表的延迟加载,以及允许可能在工作服务器而不是Web服务器上执行数据操作。