現在の状況を簡単に説明します。
app1 と app2 はダッシュ アプリで、5 秒ごとにリロードされます。そして、基本的に、すべてが正常に機能します。しかし、ブートストラップ ナビゲーション メニューの app2 ボタンをクリックして app2 タブに移動すると、以下のメッセージが表示されます。
127.0.0.1 - - [21/Jan/2018 01:17:00] "POST /app1/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:00] "POST /app2/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:03] "POST /app1/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:03] "POST /app2/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:05] "POST /app1/_dash-update-component HTTP/1.1" 200 -
問題は、app1 のメニューを既に終了しているにもかかわらず、app1 が更新され続けているように見えることです。
実際、私はここで迷っていて、もう何も頭に浮かびません。ダッシュ アプリとフラスコ アプリを組み合わせる方法を変更する必要がありますか? または、ユーザーがapp2ダッシュアプリを見ている間にapp1を一時停止する素晴らしい方法はありますか?
ありがとうございました。
app_main.py
from werkzeug.wsgi import DispatcherMiddleware
from flask_bootstrap import Bootstrap
import app1
import app2
flask_app = flask.Flask(__name__)
server = DispatcherMiddleware(flask_app, {
'/app1': app1.app_dash.server,
'/app2': app1.app_dash.server,
})
Bootstrap(flask_app)
index.html
...
<div id="app1" class="tab-pane fade">
<object data="/basic_chart"></object>
</div>
<div id="app2" class="tab-pane fade">
<object data="/balance_chart"></object>
</div>
...
app1.py
...
app_dash.layout = html.Div([
dcc.Interval(
id='interval-component',
interval=5e3, # in milliseconds
n_intervals=0
),
html.Div([
dcc.Graph(
id='graph_stream',
),
]),
...