#web-applications #plotly-dash
Вопрос:
У меня есть приложение Python Dash, которое развернуто на сервере apache. Проблема в том, что пользовательские интерфейсы (например, раскрывающиеся списки) гораздо более отзывчивы при локальном запуске, чем при развертывании на сервере. При ближайшем рассмотрении на вкладке «Сеть» в chrome devtools выяснилось, что задержка связана с большим количеством времени, потраченного на следующие процессы: «Отправлен запрос», «застопорился» и т. Д.
Мой вопрос в том, что на самом деле приводит к этому явлению и как мне решить эту проблему? (было бы хорошо, если бы это было решение для веб-приложения в целом, в контексте Dash, я бы очень признателен.)
Ответ №1:
У меня очень похожая проблема.
Иногда могут быть какие-то скрытые компоненты, которые продолжают работать. В моем случае я создал промежуточный div, содержащий большой фрейм данных. После того, как я удалил intermediate-df в своих обратных вызовах, это было намного быстрее, с 50 секунд до 5 секунд.
Комментарии:
1. Вместо этого я нашел ссылку «обратный вызов на стороне клиента» (в основном переписав обратный вызов в JS). Производительность может быть улучшена. По сути, для чисто внешней задачи (даже если я сохранил соответствующие данные в локальном хранилище), обратный вызов должен взаимодействовать со своим сервером. Это в значительной степени связано с задержкой в сети, если у вас большое количество обратных вызовов, связывающихся с сервером.
2. @Bohan Не могли бы вы, ребята, поделиться фрагментом того, что вы сделали? Я сталкиваюсь с подобными проблемами!!!
3. Эй, братан, самое прямое решение этой проблемы-изучить JavaScript, изучить Reactjs или Vuejs. Со временем вы поймете, насколько прекрасен язык программирования JS и насколько гениальны эти фреймворки. Удачи!