🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
InstantPageLoader
This page was created by Hans.karlsen on 2025-09-23. Last edited by Hans.karlsen on 2025-10-04.

To make pages load in an instant the answer - the resulting html - must already be known.

To know the resulting html of a page requires you to cache it ahead of time.

To catch the rendered html of page content go like this:

Use blazorserverside (/appli/)

/appli/ViewModel/rootid/CACHETHIS 

This will try to post to a viewmodel in your model called SysCacheCapture , must be unrooted, must be RestAllowed

In SysCacheCapture ViewModel we will try and populate 3 string columns:

  • rootid
  • viewmodel
  • html

In the unrooted SysCacheCapture ViewModel consider if you need a new object - or try and find an existing object to hold the html cache.

Documentation InstantPageLoader 1759566315979.png

The html will be page content - including the left side - excluding the top menu.

Images/blobs with ViewModel specific links will not work - you should cache pages that points to images by urls

Actions will render but not work - since there is no backing logic in the pure html.

How to use the cached html

You can use the cached html anyway you see fit - but one built in way is to use this:

/appli/ViewModel/rootid/FROMCACHE

This will do the following:

 httpClient.GetStringAsync($"{baseurl}/Rest/SysCacheGet/Get/$null$?vTheId={id}&vTheViewModel={name}")

IE assume there is an un-rooted Rest enabled ViewModel called SysCacheGet that looks up the cached html in your data and renders it under the main menu of the ServerSide blazor app.

Documentation InstantPageLoader 1759566868252.png

Since the Blazor app skips all the normal rendering and associated datafetch the page returns much faster that it would otherwise.

A merge model with the sample above is available on git hub(https://github.com/supportMDriven/MDrivenComponents): \MDrivenMergeable\InstantPageLoader\