This continues the series after /explore (#3234) and /map (#3159). GET /boards/:slug (boardShow in src/web/pages/boards-view.ts) loads the board with showBoard, then builds every pinned panel in grid. That grid is where a slow board spends its time, and today none of it is named.
Done looks like:
[ ] boardShow calls notePhase from src/core/route_timing.ts for four phases:
- session, via takeSessionTime
- board, the showBoard read
- grid, building the panels
- render, page
[ ] A test in test/board-timing.test.ts makes a board with one panel and GETs it. It finds the four names in Server-Timing and fails without the change.
[ ] A missing board is still a 404. Nothing on the page changes.
Files: src/web/pages/boards-view.ts, test/board-timing.test.ts.
Risks: grid may be lazy. Time it where its HTML is built, not where it is declared.
This continues the series after /explore (#3234) and /map (#3159). GET
/boards/:slug(boardShowinsrc/web/pages/boards-view.ts) loads the board withshowBoard, then builds every pinned panel ingrid. That grid is where a slow board spends its time, and today none of it is named.Done looks like:
boardShowcallsnotePhasefromsrc/core/route_timing.tsfor four phases:-
session, viatakeSessionTime-board, theshowBoardread -grid, building the panels -render,pagetest/board-timing.test.tsmakes a board with one panel and GETs it. It finds the four names inServer-Timingand fails without the change.Files:
src/web/pages/boards-view.ts,test/board-timing.test.ts. Risks:gridmay be lazy. Time it where its HTML is built, not where it is declared.