昔話

かつてIE5.5が現役だった頃の話。
ようやくブラウザが死ににくくなり、WEBアプリというものがそれなりに作れる用になった頃、私は「ユーザが選択した条件にしたがって選択肢を絞り込む」というUIを作っていた。具体的な話はできないが、Aという要素がグループαとグループβに属している可能性がある時、画面上のボタン押下によってαに属しているAのみ抽出、βに属しているAのみ抽出というように表示を切り替えることを行いたかったのだ。その時の条件が「画面が遷移しないこと」であった」。
今となってしまえばajaxを用いて、いとも簡単に作成できるこのようなUIは、当時つくるのが非常に厄介であった。
案としては2つの選択肢があった。
1.予めAを全件取得しておいて、javascriptによる文字列操作で抽出
2.選択肢の表示域をiframeにして、毎回上位サーバから条件抽出結果を取得する。
iframeなどという機能は極力使用したくなかったため、まず上記1を試してみた。すべてのAを取得し、その末尾にαに属しているかを示すマークと、βに属しているかを示すマークを付加(例えば00,01,10,11の4つ)。javascriptによってマークを解釈し、該当のデータだけ表示させるような事を行った。
結果は尋常じゃないほど遅い。javasctriptは非常に低速で使い物にならなかったのだ。
止む無く上記2を選択した。クエリ文字つきのページをiframeに呼び出す。すると、激速になった、iframeでFAとなった。
iframeとajaxの違いは「戻ってきたデータをそのまま表示する」か「戻ってきたデータを用いてjavascriptによってHTMLを書き換えるか」だろう。そういう意味においてiframeはつなぎの技術として非常に有用だったように思うのだった。