Могу описать подробнее, но хз станет ли понятнее. Архитектуру не я изобретал.
Есть Сервер (C# код)
Есть Клиент (JS код)
Есть Веббраузер CEF (HTMl+JS, ну браузер короче)
Сервер работает постоянно.
Загружается клиент.
Клиент грузит страничку вызовом CEF.LoadMyCoolHTML("index.html");
эта страничка гарантированно будет готова, когда сработает ивент CEF.loaded.
Сервер в какой-то момент времени отправляет клиенту ивент "showPage1".
В клиенте есть обработчик. client.onServerEvent("showPage1" => { CEF.sendEvent("showPage1"); который отправляет что-то в браузер.
Проблема в том, что если клиент получит сообщение от сервера и вызовет обработчик раньше, чем страница прогружена, страница ничего не получит.
И мне надо попросту в клиенте дождаться полной загрузки страницы, после чего начать обрабатывать серверные ивенты.
Выглядит, что кеширование - прям опция. Закешировать все что пришло от сервера, если страница не загружена. Когда загрузится - выполнить кеш.
Если на момент ивента от сервера страница прогружена - сразу выполнять