From 3d4a58cb96d1112d781c95e5291d9e940a197633 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Sat, 23 Mar 2024 10:57:43 -0400 Subject: [PATCH] optimize SiteRouter to only call SyncService for Interactive render mode --- Oqtane.Client/UI/SiteRouter.razor | 41 ++++++++++++------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index d70f111f..cb82abd6 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -163,33 +163,24 @@ visitorId = PageState.VisitorId; } - // process any sync events - var sync = await SyncService.GetSyncEventsAsync(lastsyncdate); - lastsyncdate = sync.SyncDate; - if (sync.SyncEvents.Any()) + if (PageState.RenderMode == RenderModes.Interactive) { - // reload client application if server was restarted - if (sync.SyncEvents.Exists(item => item.Action == SyncEventActions.Reload && item.EntityName == EntityNames.Host)) + // process any sync events (for synchrozing the client application with the server) + var sync = await SyncService.GetSyncEventsAsync(lastsyncdate); + lastsyncdate = sync.SyncDate; + if (sync.SyncEvents.Any()) { - NavigationManager.NavigateTo(_absoluteUri, true); - return; - } - // reload client application if site runtime/rendermode was modified - if (sync.SyncEvents.Exists(item => item.Action == SyncEventActions.Reload && item.EntityName == EntityNames.Site && item.EntityId == SiteState.Alias.SiteId)) - { - NavigationManager.NavigateTo(_absoluteUri, true); - return; - } - // reload client application if current user auth information has changed - if (user != null && sync.SyncEvents.Exists(item => item.Action == SyncEventActions.Reload && item.EntityName == EntityNames.User && item.EntityId == user.UserId)) - { - NavigationManager.NavigateTo(_absoluteUri, true); - return; - } - // refresh PageState when site information has changed - if (sync.SyncEvents.Exists(item => item.Action == SyncEventActions.Refresh && item.EntityName == EntityNames.Site && item.EntityId == SiteState.Alias.SiteId)) - { - refresh = true; + // reload client application if server was restarted + if (sync.SyncEvents.Exists(item => item.Action == SyncEventActions.Reload && item.EntityName == EntityNames.Host)) + { + NavigationManager.NavigateTo(_absoluteUri, true); + return; + } + // refresh PageState when site information has changed + if (sync.SyncEvents.Exists(item => item.Action == SyncEventActions.Refresh && item.EntityName == EntityNames.Site && item.EntityId == SiteState.Alias.SiteId)) + { + refresh = true; + } } }