mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-09 05:19:20 -05:00
[GH-ISSUE #13786] issue: Performance: UI is extremely slow with large chat history (recommend Virtual Scrolling, Lazy Loading, and Compression) #17033
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @chalitbkb on GitHub (May 11, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/13786
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.9
Ollama Version (if applicable)
No response
Operating System
Windows 11
Browser (if applicable)
136.0.7103.93
Confirmation
README.md.Expected Behavior
When the chat history grows to hundreds of messages, refreshing or loading the page should display the existing messages within 1–5 seconds, and the UI should remain smooth without any long loading delays.
Actual Behavior
Currently, with a chat history of ≥ 100–200 messages, refreshing the browser causes the loading icon to spin for 5–15 minutes before the messages finally appear. The more messages there are, the longer you wait.
Steps to Reproduce
Logs & Screenshots
Additional Information
Framework / Stack
Root Causes
<div>elements at once in the DOM slows down rendering.Why Compression Helps
lz-string), subsequent page loads can skip the network entirely and decompress locally in a Web Worker, making repeat visits nearly instant.Suggested Fixes
svelte-virtual-listto render only the messages visible on screen, not the entire history.lz-string(UTF-16) orpako(zlib) before saving, and decompress in a Web Worker on load.array.push(...); instead use controlled updates likemessages = [...messages, newMessage]or manage large arrays with Svelte stores.@yoobaring1528 commented on GitHub (May 11, 2025):
Same problem