ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

表示の組み立ては、サーバーサイドで行うか、クライアントサイドで行うか

最近、
「選択肢によってWebサイトの要素が切り替わり(この部分は、JavaScriptで制御)、次へボタンを押すと確認画面、確認画面で戻るボタンを押すと、元の画面だけれど、選択した状態=次へボタンを押す前の状態」
が表示されるWebサイトの、表示の作り方として、

  • サーバーサイドで表示のHTMLを組み立てて、クライアント側はレンダリングのみという、サーバーサイドパターン
  • サーバーサイドでは必要な要素は用意して、クライアント側でレンダリングJavaScriptで表示を切り替える、クライアントパターン

の両方を実装しました。

メリット/デメリット

サバーサイドで表示のHTMLを組み立てた方が、表示が切り替わる様子(例:表示されている要素が非表示になる)は表示されないので、見て違和感を感じません。
ただし、選択により切替をするためのJavaScriptのコードとは別に、サーバーサイド側のコードにも同様の部分が必要になり2度手間に感じます。

クライアントサイドで処理すると、コードはJavaScriptにまとまりますが、コードがやや複雑になりますし、表示された際のイベントでの処理にも対応しなければいけません。

どちらがいいのか

コードがまとまるメリットから、クライアントサイドと考えたくなりますが、サーバーサイドの作り方によっては、似たようなコードにはならず、メンテナンスしやすいので、現状はサーバーサイドと考えています。