A click on a feed, All Subscriptions or a filter fetched the list and only then drew it, so nothing answered the click until the server did. The page now keeps the first page of each list (the newest 40, by view, filter, sort and search), draws a kept one at once and refreshes it behind, drawing again only if it changed. It fetches ahead: All Subscriptions and the twenty feeds with the most unread once the page is idle, two at a time, and a feed or filter when the pointer or a finger reaches it. A feed_row or a read forgets that feed's lists and All Subscriptions'; the forgotten are fetched again behind. A list with nothing kept shows a spinner if its answer takes more than 120 ms. list_shown (#246) is reported when the list first shows, so a kept one reports its few ms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
111 KiB
111 KiB