はじめに
こちらの記事
https://qiita.com/jun2/items/2e3d8ec30664058567f6
にてjQueryをやめようと試みたのですが、できなかったという話を記事にしたと思います。
ここではもう少し詳細に記載したいと思います。
紙形式のUIに弱い
業務系アプリケーションを手掛けている方のあるあるだと思うのですが、印刷を意識する必要が出てきます。
ActiveReportといった帳票系のツールを使っていれば簡単に解決できるのですが、cssだけで頑張ろうとするとどうしてもjQueryに頼らざるを得ない部分が出てきます
通常のWeb画面ですと、画面の区切りはあまり気にしません。
あえて言えばなるべくスクロールしないように・・・などといったところでしょうか?
しかし、紙形式を意識する場合ページ区切りをどうしても意識する必要があり、改行が入ってしまったりするとレイアウトが崩れはみ出したりするなどの現象が発生してしまいます。
完全なSSRの形式だとここが厄介となります。
何とかなる場合もある
何とかなる場合として、「見切れてもいい」「文字数が絶対的に限られている」 「ページ数が固定」である場合です。
この場合折り返しも発生しませんのでレイアウトを固定化することができるため、SSRでも実装が可能となります。
なんともならない場合
問題は「見切れるのはNG」 「折り返しも許容する」 「不特定の繰り返し行がある」といった場合です。
こうなってくるとページ区切りをする上で必要となるのは実際に描画されているオブジェクトの高さです。
SSRですと描画されていないため、この計算ができずどこで改ページすればいいかわかりません。
そもそも ページ数が不特定であるため、 何ページ用意すればよいのか(特定の場合では解消できますが)というのすらわかりません。
こういった問題は描画された後に表示されている且つ、オブジェクトを直接参照できるjQueryはとても頼りになります。
おわりに
・・・まずもう紙をやめてくれ。..
これに限るのですが、提案はできますが決定権は作る側にはなかなかありません。。ただし、有用性を訴える事はできます。
それでも印刷を求めるのであれば当然実現させるしかありませんので、何とかする次第です。