MFの frameset を iframe に変えた件について

framesetとiframeの未来を考える

長年運営しているCGIブラウザゲームは、現在もframeset構造を採用しています。
しかしHTML5ではframesetは非推奨となっており、将来的に主要ブラウザから完全にサポートが外される可能性があります。
そのとき、どう移行すべきかという検討を行いました。

移行先としてのiframe

結論として、現行のコード構造をほぼ変えずに置き換え可能な選択肢はiframeです。
特に以下の点で利点があります。

  • HTML5で正式サポートされており、非推奨扱いではない
  • frameset同様に複数ページを分割表示できる
  • 既存のCGI側ロジックをほぼ改修せず導入可能

CSSを併用すれば、framesetとほぼ同じレイアウトを再現できます。
さらに、背景色を設定することで、iframeの切り替え時に発生しがちな白いチカチカも軽減可能です。
ただし、この点はframesetでは制御できないため、移行後の改善ポイントの一つとなります。

レガシー端末への配慮

移行の際、古い端末(例:PS Vita)ではFlexboxなどモダンCSSの互換性が低い場合があります。
そのため、User-Agentを判定して旧frameset版を配信する方法を検討しました。
これにより、メインはiframe+CSSでモダン化しつつ、レガシー環境も切り捨てずに維持できます。

iframeは長期的に安全か

現状、iframeは廃止予定がなく、主要サービスや広告、埋め込みウィジェットでも広く利用されています。
セキュリティ制約は今後強化される可能性がありますが、当面は安心して使える技術です。
仮にiframeが廃止されるとしても、代替の仕組みが先に登場するでしょう。

frame技術の本質

私の考えでは、frameやiframeといった「画面の一部だけを別ソースで表示・更新する仕組み」は、Webの構造的な設計思想として今後も残るはずです。
すべてを1ページにまとめるSPA構造は確かにモダンですが、保守性や軽量性の面では不利です。
分離型UIは更新や管理が容易で、長寿命なシステムに向いています。

結論

今すぐ移行する必要はありません。
framesetが主要ブラウザで本当に動かなくなったタイミングで、iframe+CSSレイアウトへの置き換えを行えば十分です。
その準備として、互換テンプレートやUA振り分けスクリプトを用意しておけば、将来もスムーズに運用を続けられます。

ブログ主が運営しているゲームです。

 MobileFight

 ジマさんの囲碁入門