
`gr.Plot` rendering delay when switching `gr.Tabs` in version 5.38.0–5.38.2
快速结论:该问题出现在 Gradio 5.38.0–5.38.2 版本中,当用户在 gr.Tabs 组件内切换到包含 gr.Plot 的标签页时,渲染会出现明显延迟。官方在后续版本(如 6.19.0)中已无法复现此问题,优先建议升级 Gradio 到最新版本。
问题场景
用户在 Gradio 5.35.0 升级到 5.38.2 后,使用 gr.Blocks + gr.Tabs + gr.Plot 组合时触发。具体场景:gr.Tabs 中包含多个标签页,其中一个标签页内放置了 gr.Plot(使用 Plotly 图表),切换到此标签页时渲染出现显著延迟,而其他标签页切换正常。
报错原文
After updating Gradio from version 5.35.0 to 5.38.2, I noticed a significant delay when switching gr.Tabs to a tab containing a gr.Plot.
In version 5.35.0, the switch was almost instantaneous, but in 5.38.2 there is a noticeable lag before the plot is rendered.
原因分析
可能原因:
- Gradio 5.38.0–5.38.2 版本在
gr.Plot组件的渲染流程中引入了回归(regression),导致切换标签页时 Plotly 图表重绘延迟。 - 由于 Issue 提交者使用的自定义
create_image_figure函数涉及图像处理和go.Image类型图表,可能与ssr_mode=True或gr.I18n的组合有关,但这些在官方复现中未得到确认。 - 官方在最新版本(6.19.0)中测试了最小复现用例,切换至 Plot 标签页的渲染时间约为 470ms,未发现明显延迟,因此推测该问题已在后续版本中修复。
环境排查
- Gradio 版本:确认是否为 5.38.0–5.38.2 或更早版本(如 5.35.0)。
- gradio-client 版本:Issue 中报告为 1.11.0。
- Plotly 版本:未在 Issue 中明确列出,但涉及
plotly.graph_objects。 - 操作系统:Windows(用户报告)。
- Python 版本:Issue 中未提及,但涉及 numpy 1.26.4。
- 浏览器:未提及,建议检查渲染性能。
解决步骤
- 升级 Gradio(可优先尝试)
将 Gradio 升级到 6.19.0 或更高版本。根据官方反馈,此问题在最新版中已无法复现。 - 检查复现最小化
尝试用最简单的gr.Tabs+gr.Plot代码(如 Issue 评论中的最小示例)测试,排除自定义函数(如create_image_figure)或其他依赖(如gr.I18n、go.Image)的影响。 - 禁用 SSR 模式
如果使用ssr_mode=True,尝试移除该参数,或改为ssr_mode=False,观察延迟是否改善。 - 降级至稳定版本
如果升级不可行,可降级回到 5.35.0 或更早的已知正常版本。
验证方法
运行最小复现代码(例如官方评论中的示例),在 gr.Tabs 中从其他标签页切换到包含 gr.Plot 的标签页,观察渲染延迟是否消失。也可在浏览器开发者工具(Network/Performance 选项卡)中监控资源加载时间。



