Dust.jsなどの一部のJavaScriptフレームワークは、(クライアント側のレンダリングに加えて)サーバー側のレンダリングもサポートしていると主張しています。誰かがこれがどのように機能するか説明できますか?私の理解では、JSは常にブラウザのランタイムで実行されます。
JavaScriptは、 Node.js などのシステムを使用するサーバーで実行できます。
テンプレートエンジンである Dust.js に関しては、サーバー上でハイパーテキストとHTMLを生成し、そのコンテンツをクライアントのブラウザーに直接送信できます。これは通常、ブラウザがDust.jsなどのフレームワークを介してビューのテンプレートにデータを入力するのに一瞬かかるために一時的に空のテンプレートがフラッシュするのを防ぐために使用されます。欠点は、クライアントにデータを送信する前にサーバーでより多くの作業を行う必要があるため、ページの読み込みに少し時間がかかることです。
サーバー側のレンダリングの長所と短所については、 この質問 を確認してください。遅い後処理(ユーザーのブラウザーに作業を要求する)または遅い前処理(ユーザーに何かが表示される前にサーバーに作業を行わせる)のいずれかを選択する必要があります。
サーバーサイドレンダリングは、JavaScriptを静的なhtmlとcssに変換しています。以前のJSは、Webサイトのパフォーマンスを最適化するために最後にロードする傾向がありました。しかし、問題はそれがSEOに影響を与えたことでした。そのため、サーバー側のレンダリングがこの問題を解決するソリューションになりました。