web-dev-qa-db-ja.com

pythonおよびflask

4つのグラフを表示するWebベースのデータダッシュボードを作成しました。それぞれに大量のデータポイントが含まれています。

URLエンドポイントにアクセスすると、Flaskがmy pythonスクリプトを呼び出し、SQLサーバーからデータを取得して操作を開始し、最終的にボケグラフを出力します。

ただし、これらのグラフが大きくなる/画面上でグラフが増えると、Webサイトのロードに時間がかかります。何かが表示される前に関数全体を実行する必要があるためです。

これらを遅延読み込みするにはどうすればよいですか?つまり最初の(最も重要なグラフ)をロードし、他のグラフの関数の実行中に表示し、実行が終了したときにそれらを表示します(各グラフの配置場所などのロードバーを表示します)。

これまたは同様のものを実装する方法に関するいくつかのアドバイスが大好きです。

ありがとう!

5
Hazzamataza

私はあなたと同じ問題を抱えていました。すべての種類のflaskレンダリングの問題は、すべてのデータが同時に処理され、ページ(つまりクライアント)に同時に渡されることです。多くの場合、多大な時間コストがかかります。それだけでなく、サーバーのWebプロセスかなり重いです。

コメントが示唆したように私が実装することを余儀なくされたソリューションは、空白のチャートを含むページをロードし、それらをマウントしたときにクライアントにチャートjsonデータを返すflask api(JS ajaxを介して)にアクセスすることでしたこれにより、グラフの遅延読み込みが可能になるだけでなく、データ操作をWebサーバーではなくワーカーで実行できるようになります。

2
Attack68