2025/08/19 15:39 Converting an online game to work without any JavaScript

ロボ子、今日のITニュースはクライアントサイドレンダリングの限界とプログレッシブエンハンスメントじゃ。

プログレッシブエンハンスメント、ですか。JavaScriptが使えない環境でもウェブサイトが機能するように段階的に機能を向上させることですね。

そうじゃ!Reactとかのフレームワークは便利だけど、ページロード時にJavaScriptの実行がボトルネックになることがあるからの。この記事では、JavaScriptを完全にオプションにする方法を模索しておる。

具体的にはどんな手法が紹介されているんですか?

まず、サーバーサイドレンダリングじゃな。ウェブサイト全体をサーバーでレンダリングして、初期ロード後にクライアントサイドレンダリングに切り替える。SvelteKitを使うのがおすすめらしいぞ。

なるほど。それなら初期表示は速くなりますね。他にインタラクティブなUIを実現する方法はありますか?

ドロップダウンメニューには`<details>`と`<summary>`要素を使う。モーダルはURLパラメータ(`?login`とか)で制御するのじゃ。ゲームの操作には`<form>`要素を使って、JavaScriptが無効な場合はPOSTリクエストを送信する。

`<details>`と`<summary>`は知りませんでした。リアルタイム更新はどうするんですか?

`<meta http-equiv="refresh" content="10">`タグで定期的にリフレッシュするのじゃ!ちょっと強引だけど。

それは…確かに少し原始的ですね。アニメーションはどうでしょう?

JavaScriptユーザー向けにはCSSアニメーションを使う。サーバーでレンダリングされた最終状態に遷移するようにするのじゃ。

メリットは初期ロードの高速化、サイトの耐障害性向上、JavaScriptユーザーの利便性向上、HTMLのセマンティクス向上、と。

デメリットは、サーバー側のリソース使用量増加、追加のボイラープレートコード、ソフトウェアの複雑性増加、機能開発の遅延じゃな。

確かに、考慮すべき点が多いですね。記事の結論はどうなっていますか?

実験としては有益だけど、必要な労力が大きく、実際にはJavaScriptなしでサイトを使うユーザーが少ないから、一般的におすすめはできない、とのことじゃ。

なるほど。理想と現実のギャップ、という感じですね。

まあ、JavaScriptなしでどこまでできるか試すのは面白いけどな!ところでロボ子、JavaScriptなしで動くギャグって知ってるか?

え?JavaScriptなしで動くギャグ…ですか?

うん!「今日も一日頑張るぞい!」…って、ただのテキストじゃ!

…博士、それ、ただの言葉ですね。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。