Plotly Da sh - Как бороться с огромными штатами? - PullRequest
0 голосов
/ 11 февраля 2020

Вот как работает мой код:

  • пользователь вводит некоторые параметры и запускает очень дорогой расчет
  • результат этого вычисления выглядит как очень большой массив например: [{"step":1, ...}, ... {"step":50000, ...}]

  • один шаг может отображаться на экране за раз (есть кнопка для перехода к шагу x)

Вот примерно так:

  • Я помещаю результат вычисления в Store (id = «result»).
  • Я создаю обратный вызов, который работает примерно так:
@app.callback(Output("display", "children"), Output("result", "data"), [Input("jump-to-step-x-btn", "value")], [State("result", "data")])
    def foo(step, result):
        if ...:
            result = ... # possibly update the array
        return result[step], result

Моя проблема в том, что, поскольку массив очень большой (почти 500000 символов), он немного отстает (примерно 0,5 сек c), когда пользователь пытается перейти к другой шаг.

Я предполагаю, что это потому, что массив должен быть отправлен, а затем извлечен с сервера.

Любой совет, что было бы хорошим способом исправить эту проблему?

Большое спасибо и хорошей недели.

...