-
Improvement
-
Resolution: Fixed
-
Minor
-
Future Dev
-
MOODLE_403_STABLE
-
MDL-73734-streaming-output-api -
There are a couple places such as running upgrades and running a task which slowly output a long running stream of stuff, but the way this works means the page layout is broken in the interim: the footer isn't sent yet and the header can be weirdly aligned.
It would be much better if there was a new page rendering method very similar to the way the progress bar sends incremental updates so that the page can be fully rendered and then one or possibly many parts of the page can be updated in any order by streaming html chunk updates from the backend.
This would be a relatively small api but is effectively implementing the 'BigPipe' pattern which could have a lot of uses and performance improvements in various places:
https://www.drupal.org/docs/8/core/modules/big-pipe/overview
https://engineering.fb.com/2010/06/04/web/bigpipe-pipelining-web-pages-for-high-performance/
The $PAGE method could look vaguely like these:
https://github.com/williankeller/bigpipe-pipeline#methods-to-use-it
Places which would benefit from this:
- backup and restore when doing the synchronously
- course generator tool
- cron 'run now' pages
- tool_httpsreplace
- dashboard, site home, and course pages with progressively rendered blocks without resorting to them all being another ajax request
- blocks
-
MDL-79127 Improve the status / performance / security check reports to render incrementally
-
- Peer review in progress
-
- caused a regression
-
MDL-79276 Stray <script> tag after closing </html> tag breaks HTML validation
-
- Closed
-
-
MDL-79320 Forum post exports broken/performance debugging appended to them
-
- Closed
-
- has a non-specific relationship to
-
MDL-78447 Improve progress rendering of create test course tool
-
- Closed
-
- will be (partly) resolved by
-
MDL-75813 Session cache store breaks cache api when session is closed or readonly - deprecate cachestore_session
-
- Open
-