After a successful /api/voices fetch, results are written to sessionStorage (key ttsvc_vc). On the next page load loadVoiceLibrary() reads the cache and renders voices immediately before the network request completes, eliminating the blank-list / skeleton flash entirely. The background fetch always runs and overwrites the cache with fresh data. Error handling is graceful: if the network fails but cache was served, the error is suppressed (stale data stays visible). The Refresh button clears the cache first to force a full reload cycle. Silent-refresh logic (from v1.12.19) prevents the second loadVoiceLibrary() call (engines.js batch E) from blanking already-rendered voices. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2 lines
8 B
Plaintext
2 lines
8 B
Plaintext
1.12.20
|