Non-uploading progress events (queued/getting-server/retrying/done/ error/aborted/skipped) were firing renderQueueTable + updateQueueActionButtons + updateStatusBar + updateStatsPanel synchronously on EVERY event. At batch start, 500 jobs going preview→queued→getting-server within milliseconds meant ~2000 sync DOM updates — visible jank on large batches. New scheduleStatusChangeUpdate() uses requestAnimationFrame to coalesce the four-helper call into at most one run per frame (~60 Hz). Functional result is identical; the user just sees smooth flips instead of a briefly frozen renderer. The uploading-progress throttle (200ms) is unchanged since those events are much more frequent and the user doesn't need 60 Hz upload-byte updates. |
||
|---|---|---|
| .. | ||
| app.js | ||
| drop-target.html | ||
| index.html | ||
| styles.css | ||