Я пытаюсь создать веб-приложение, выполняющее wasm на стороне клиента, и мне интересно, что было бы хорошим способом обслуживания нескольких страниц. Моя главная проблема - производительность, потому что я хотел бы разбить приложение на контекстные куски, а не на одну страницу со всем содержимым.
Я использую Rust с рамкой Yew для на стороне клиента, и до сих пор я использовал yew_router для обработки различных маршрутов на стороне клиента, но все они работают с одной страницы HTML и модуля Wasm. Теперь я хотел бы иметь возможность обслуживать разные HTML страницы с отдельными модулями Wasm, и я не уверен, как это реализовать. Действительно ли мне нужно написать отдельный ящик для каждой страницы и скомпилировать их для отдельных модулей Wasm, чтобы я мог обслуживать их по отдельности? Или есть какой-то способ, которым я могу собрать один ржавый ящик для нескольких модулей Wasm?
Моя текущая структура проекта выглядит следующим образом:
.
├── Cargo.toml // workspace manifest
├── client
│ ├── Cargo.toml
│ ├── favicon.ico
│ ├── index.html
│ ├── main.js
│ ├── Makefile
│ ├── pkg // built using wasm-pack and rollup
│ │ ├── bundle.js
│ │ ├── client_bg.d.ts
│ │ ├── client_bg.wasm
│ │ ├── client.d.ts
│ │ ├── client.js
│ │ ├── package.json
│ │ └── snippets
│ ├── src
│ ├── statics
│ ├── styles
│ └── vendor
├── server
│ ├── Cargo.toml
│ └── src
└── ... other crates
, и я запускаю сервер внутри client/
, где он index.html
отвечает на все входящие GET
запросы. index.html
ссылается на bundle.js
in pkg/
, который устанавливает модуль client_bg.wasm
.
Теперь я в основном хочу сделать это с другой страницей HTML, с другим модулем Wasm, предпочтительно из то же самое приложение Yew в client
ящике.
Спасибо