Потоковая передача¶
Это низкоуровневый API, предназначенный для использования авторами библиотек. Если вы хотите использовать рендеринг на стороне сервера в своем приложении, мы предлагаем воспользоваться Solid Start, нашим метафреймворком, который позволяет очень просто добавить рендеринг на стороне сервера в ваше приложение.
Что такое стриминг?¶
Потоковая передача - это техника рендеринга на стороне сервера, аналогичная Simple server-side rendering, только с использованием потоков. Данные загружаются на сервер и передаются по потоку, чтобы клиент мог их отрисовать.
В отличие от Async SSR в этой технике гидрируется только начальный HTML. Загрузка данных происходит несколько быстрее, что позволяет сократить время загрузки страницы. Это особенно заметно по сравнению с Async SSR при использовании на медленных серверах.
Как работает renderToStream
?¶
renderToStream
работает, принимая компонент и возвращая HTML, однако для любого узла, где требуются асинхронные данные, вместо него отрисовывается заполнитель, который заменяется по мере загрузки потока. Таким образом, в потоковом режиме границы суспензий отображаются, а затем заменяются, в отличие от Async SSR, где границы суспензий не отображаются вообще.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
В приведенном выше примере грубого кода сначала будут отрисовываться загрузочные плейсхолдеры, а затем, по мере загрузки потока, эти узлы будут заменяться. Вот пошаговое описание того, как это может выглядеть:
1 2 3 4 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 10 |
|
Как использовать renderToStream
?¶
Для использования renderToStream
вам потребуется сервер, на котором может выполняться Javascript-код. Вы можете использовать любой серверный фреймворк, но для данного примера мы будем использовать Express.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Следует иметь в виду, что для сборки приложения потребуется пакетный компоновщик, например Vite, Webpack или Rollup. Вот полнофункциональный пример с использованием rollup и express. solid-ssr-workbench. Это репозиторий содержит примеры использования Solid со всеми тремя формами SSR.