Skip to content

[BUG] dcc.Loading stops spinning prematurely since version 3 #3594

@sergiykhan

Description

@sergiykhan

dcc.Loading often ends spinning prematurely before the menu is rendered. The two recordings below show:

  • no delay in version 2.18.2
  • about half a second delay for version 3.4.0

The problem appeared since version 3.

https://github.com/user-attachments/assets/46efa559-505e-4255-9c74-fff37ff80044
https://github.com/user-attachments/assets/9e21acbd-0130-4515-b1c6-18192e4cd7c9

Dash 3.4.0

dash                    3.4.0

Dash 2.18.2

dash                    2.18.2
dash-core-components    2.0.0
dash-html-components    2.0.0
dash-table              5.0.0
  • OS: Windows
  • Chrome 144.0.7559.110
from dash import Dash, dcc, html, dcc, Input, Output
import dash
from dash.exceptions import PreventUpdate
import time

options = [
    {"label": "aa1", "value": "aa1"},
    {"label": "aa2", "value": "aa2"},
    {"label": "aa3", "value": "aa3"},
    {"label": "best value", "value": "bb1"},
    {"label": "better value", "value": "bb2"},
    {"label": "bye", "value": "bb3"},
]

app = Dash(__name__)
app.layout = html.Div(
    [
        f"Dash Version: {dash.__version__}",
        dcc.Loading(
            dcc.Dropdown(id="my-dynamic-dropdown"),
            type='default',
            delay_show=0,
            delay_hide=0,
            overlay_style={
                'visibility': 'visible',
            },
        ),
    ],
    style={'width': 200, 'marginLeft': 20, 'marginTop': 20},
)


@app.callback(
    Output("my-dynamic-dropdown", "options"),
    Input("my-dynamic-dropdown", "search_value")
)
def update_options(search_value):
    if not search_value:
        raise PreventUpdate

    time.sleep(1.0)

    return [o for o in options if search_value in o["label"]]


if __name__ == "__main__":
    app.run(debug=True, port=5000)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions