Evaluate recursive placeholder replacement in CachedPlaceholderStrategy

Created on 7 February 2025, 3 months ago

Problem/Motivation

Follow-up from 📌 Render the navigation toolbar in a placeholder Active .

Quoting Fabianx:

The reason for the recursion is to support the following scenario (part of ORIGINAL 2014 big pipe demo):
There is a sleep(1) on the page in a cacheable block content, which sets max-age=0
Then this makes the whole block uncacheable.
As soon as you create a placeholder within the block for the current_time, then the block becomes cacheable again. You still want to create a placeholder for the block as it contains other content that is independent of the page.
With the CachedPlaceholderStrategy with above implementation:
If the block is uncached then the whole block is streamed via big_pipe.
If the blocked is cached then just the placeholder is streamed via big_pipe.
Without the recursive calling of the strategy, this would fail and the `current_time` would again make the whole page slow.

Steps to reproduce

Proposed resolution

We should try to set up a page matching the scenario above and see whether it's actually a problem or not, then either way that will provide the basis for test coverage.

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

📌 Task
Status

Active

Version

11.0 🔥

Component

render system

Created by

🇬🇧United Kingdom catch

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024