angular / angular/angular-cli

Angular 19 SSR/hybrid rendering engine: cross-request cache

Offen
#30,305 4 Kommentare 29 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area: @angular/ssr feature feature: under consideration
Vorherrschende Sprache
TypeScript
Sterne
27k
Forks
11.8k
Ø Merge
14 Std. 23 Min.
Gemergte PRs (30 T.)
162

Beschreibung

### Command

run

### Description

It would be a useful optimization to cache some requests during SSR across requests to the SSR server. Some of the API requests have infrequently changing data. Pulling the response from cache would save a lot of network time, especially if the response is big.

Flow:
User 1 makes makes request to Angular SSR server -> SSR makes requests to API in order to gather data for rendering -> request gets cached -> user 1 receives an html response.
User 2 makes request to Angular SSR server -> SSR server would make API request in order to gather data, but instead pulls the response from the cache -> user 2 receives an html response.

One possible implementation would be to consider Cache-Control header and cache the response in the server for the time specified.

If this will not be considered - what would you say is the best approach in order to optimize these kind of API requests? Perhaps a wrapper around `global.fetch` in Node server (where Angular engine runs) which would monitor every API request and store in some local cache?

### Describe the solution you'd like

_No response_

### Describe alternatives you've considered

_No response_

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Es werden keine Dateien, Tests oder konkreten Einstiegspunkte genannt. Beginne damit, den Anforderungspfad für Angular SSR/hybrid rendering im Node-Server nachzuverfolgen und zu prüfen, wie global.fetch verwendet wird; lege vor der Implementierung den Cache-Scope, den Ablauf und das Cache-Control-Verhalten fest. Als abgeschlossen gilt die Aufgabe erst mit einem abgestimmten Design, einer Implementierung und einer Abdeckung für das Caching über mehrere Requests hinweg.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, node.js, typescript
Bereich
backend, performance, web-dev
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.