- IntersectionObserver defers both cover images and placeholder canvas drawing until cards enter viewport — eliminates 1000+ upfront ops - ETag on /library/list: browser gets 304 Not Modified when nothing changed - Single DOM pass in renderBooksGrid/renderDuplicatesView/renderSeriesDetail: card.querySelector replaces second iteration with 500+ getElementById calls - book_tags joined via json_agg in main query, removing separate SELECT + Python merge - loadLibrary: error handling prevents silent failures showing as infinite loading - Delete TODO-PERF-library-load.md (all four bottlenecks resolved) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| routers | ||
| scrapers | ||
| static | ||
| templates | ||
| cbr.py | ||
| db.py | ||
| Dockerfile | ||
| epub.py | ||
| main.py | ||
| migrate_paths.py | ||
| migrations.py | ||
| pdf.py | ||
| recover_decock049.py | ||
| requirements.txt | ||
| security.py | ||
| xhtml.py | ||