novela/containers/novela
Ivo Oskamp 5d83bfccab Performance: lazy covers, ETag caching, single DOM pass, SQL tag aggregation
- 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>
2026-03-28 01:04:32 +01:00
..
routers Performance: lazy covers, ETag caching, single DOM pass, SQL tag aggregation 2026-03-28 01:04:32 +01:00
scrapers Remove Python cache artifacts from repository 2026-03-22 16:13:54 +01:00
static Performance: lazy covers, ETag caching, single DOM pass, SQL tag aggregation 2026-03-28 01:04:32 +01:00
templates Performance: lazy covers, ETag caching, single DOM pass, SQL tag aggregation 2026-03-28 01:04:32 +01:00
cbr.py Bootstrap Novela 2.0 implementation and docs 2026-03-22 16:13:45 +01:00
db.py Bootstrap Novela 2.0 implementation and docs 2026-03-22 16:13:45 +01:00
Dockerfile Apply review fixes for reader/editor, backup deps, and env docs 2026-03-22 16:23:42 +01:00
epub.py Add Book Builder: WYSIWYG EPUB editor with draft management and publish flow 2026-03-26 10:24:57 +01:00
main.py Performance: lazy covers, ETag caching, single DOM pass, SQL tag aggregation 2026-03-28 01:04:32 +01:00
migrate_paths.py Add bookmarks, bulk delete, series suffixes, CBR/CBZ reader, Dropbox OAuth2, backup progress, autocomplete, and path migration 2026-03-26 08:42:56 +01:00
migrations.py Performance: lazy covers, ETag caching, single DOM pass, SQL tag aggregation 2026-03-28 01:04:32 +01:00
pdf.py Bootstrap Novela 2.0 implementation and docs 2026-03-22 16:13:45 +01:00
recover_decock049.py Add bookmarks, bulk delete, series suffixes, CBR/CBZ reader, Dropbox OAuth2, backup progress, autocomplete, and path migration 2026-03-26 08:42:56 +01:00
requirements.txt Bootstrap Novela 2.0 implementation and docs 2026-03-22 16:13:45 +01:00
security.py Bootstrap Novela 2.0 implementation and docs 2026-03-22 16:13:45 +01:00
xhtml.py Add Book Builder: WYSIWYG EPUB editor with draft management and publish flow 2026-03-26 10:24:57 +01:00