Step 21: HTTP Transfer Cache Issue

The Problem

Without HTTP transfer cache, the application makes unnecessary API calls for data that could be cached during server-side rendering.

Issues:

  • Duplicate API calls
  • Unnecessary network requests
  • Slower client-side rendering
  • Wasted bandwidth

Problematic Code:


// app.config.ts
export const appConfig: ApplicationConfig = {
  providers: [
    provideHttpClient()
  ]
};

// Component
@Component({...})
export class Component {
  ngOnInit() {
    // Same data requested on server and client
    this.api.getCards().subscribe(cards => {
      this.cards = cards;
    });
  }
}
          

Watch the network tab and console. Notice how the same data is fetched twice - once on the server and once on the client.

Data loaded

Request Information:

19:56:56.091Data received from API
19:56:55.355Starting API request...
Deserunt nemo et vel.

Deserunt nemo et vel.

Ut ad quos dolorum.

Ut ad quos dolorum.

Numquam ut et corporis ut.

Numquam ut et corporis ut.

Sapiente veniam unde eveniet.

Sapiente veniam unde eveniet.

Quia qui voluptate sit.

Quia qui voluptate sit.

Tempore in ducimus totam.

Tempore in ducimus totam.

Reprehenderit fuga ut id.

Reprehenderit fuga ut id.

Odit ea vel quam omnis.

Odit ea vel quam omnis.

Natus ut quo velit repellat.

Natus ut quo velit repellat.

Minus maiores suscipit ut.

Minus maiores suscipit ut.

Sunt natus dolorem at.

Sunt natus dolorem at.

Earum dicta et quos.

Earum dicta et quos.

Culpa sed officiis ut eos.

Culpa sed officiis ut eos.

Doloribus et sed ut quae ex.

Doloribus et sed ut quae ex.

Ut unde a officia hic alias.

Ut unde a officia hic alias.

Eligendi officia et velit.

Eligendi officia et velit.

Ex aut maiores eum.

Ex aut maiores eum.

Et nisi vel id ipsam.

Et nisi vel id ipsam.

Est amet ut est enim amet ut.

Est amet ut est enim amet ut.

Vitae totam labore iste est.

Vitae totam labore iste est.