perf: reduce SSR HTML payload by serving page tree via cacheable API
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
- Ambito
- api, performance, web-dev
Direzione di ricerca
Inizia in entry-server.tsx, dove config, tree e i campi per-page vengono serializzati nell’SSR HTML, e traccia il percorso di questi dati fino al client. Definisci la risposta di /api/tree e il comportamento della cache, quindi verifica che l’SSR HTML conservi solo i dati per-page e che le risposte invariate espongano il comportamento di Cache-Control e ETag.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Every SSR response embeds the full site config + page tree in a <script> tag via window.__PAGE_DATA__. On large doc sites this can be 30-100KB+ of JSON per page load, with no HTTP caching (no ETag/Last-Modified/304 support).
Current Behavior
entry-server.tsx serializes config, tree, slug, version, frontmatter, relativePath, originalPath, prev, next into every HTML response.
Suggested Approach
- Serve the page tree and config via a cacheable
/api/treeendpoint with ETag support - Only embed the minimal per-page data (slug, frontmatter, prev/next) in SSR HTML
- Add
Cache-Control/ETagheaders to SSR responses for unchanged pages
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 1
- Merge medio
- 12m
- PR unite (30g)
- 1
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di raystack/chronicle
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 65/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Tutte le issue di raystack/chronicle
Issue simili
-
Remove the landing pageApertaby: ai-assisted frontend good-for: new-member spike
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Northeastern-Electric-Racing/Argos#847 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 84/100
SignalK/freeboard-sk#990 ·
I maintainer di solito rispondono entro 1 giorno
-
[missing-inheritance] audit review (1 preset)Forse già presa @github-actions l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
osmberlin/tagging-schema-browser#363 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Albert-Weasker/niubigeo#205 ·
I maintainer di solito rispondono entro 1 giorno
-
area/frontend area/v2 kind/bug priority/needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
kubeflow/notebooks#1498 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno