#blazor #blazor-server-side #blazor-client-side #blazor-webassembly #asp.net-blazor
#blazor #blazor-серверная часть #blazor-на стороне клиента #blazor-webassembly #asp.net-blazor
Вопрос:
Итак, как мы знаем, Blazor довольно крут.
Однако у каждой из 2 версий есть свои плюсы и минусы.
Веб-сборка занимает много времени для первой загрузки, а серверная часть потребляет ресурсы (порты подключения и оперативную память)
Есть ли способ, чтобы веб-сайт загружал Blazor на стороне сервера, после загрузки содержимого WebAssembly переключитесь. Две версии будут использовать все компоненты razor, поэтому должны выглядеть одинаково.
Есть ли поддерживаемый способ сделать это (возможно, в .Net5)? Или какие-то обходные пути, с которыми люди добились успеха?
Комментарии:
1. проверьте эту отложенную загрузку: github.com/isc30/blazor-lazy-loading (ПРИМЕЧАНИЕ: я им не пользовался, но выглядит красиво)
Ответ №1:
Шаблон проекта Blazor в ветке разработки GitHub имеет функцию для переключения во время выполнения между сервером Blazor и wasm. Обе версии имеют одинаковый пользовательский интерфейс и все функции.
Комментарии:
1. У вас есть ссылка на проект?
2. Клонировать github.com/enkodellc/blazorboilerplate/tree/development и читать blazor-boilerplate.readthedocs.io/en/latest/features/…
Ответ №2:
Существует реализация горячего переключения между BSS и WASM, называемая HybridBlazor. Это объясняется в статьеhttps://itnext.io/blazor-switching-server-and-webassembly-at-runtime-d65c25fd4d8 а исходный код находится на github https://github.com/jdtcn/HybridBlazor
Идея состоит в том, чтобы одновременно загружать как BSS, так и приложение WASM, но скрывать приложение WASM до завершения переключения. Поскольку обе реализации blazor подписываются и обрабатывают события window.addEventListener
, перезаписывается, чтобы разрешить только реализацию BSS обрабатывать события до тех пор, пока пользователь не переключится. Переключение может быть выполнено автоматически, например, при навигации по странице.