Web開発FAQ

データバインドによる動的なフレーム・ページの作成について

データバインドによる動的なフレーム・ページを作成する方法を教えてください。

データバインドによる動的なページは、単一のものやPOPUP、プロンプトのほかフレーム・ページにも
応用することができます。 その概要は以下の通りです。

  • フレームのソースを指定する際にCGIを指定する。
    (静的なHTMLファイルではなく、引数としてテンプレートやその他「必要な値(例 ユーザー名判定用の引数など)」をCGIにフックし、CGI側で適切な文字列や、次画面以降に持ち回す値を、ページリクエストの都度書き出す。)
  • 「必要な値(例 ユーザー名判定用の引数など)」を全てのファイル(フレーム構成用HTMLファイルを含む)で持ち回す。
  • 全ての画面(フレーム構成用HTMLファイルを含む)は @TEMPLATE 指定によるCGI書き出しとし、
    それらに記述されたリンク先URLも全て上記「必要な値(例 ユーザー名判定用の引数など)」を含む @TEMPLATE構文のCGI指定とする。

例えば、<FRAME>の src記述 を次のようにすることでデータバインドされたフレームを構成できます。
※ここでは便宜上「ユーザー名判定用の引数」を「社員コード」とします。

<FRAMESET rows="20,*">
  <FRAME src="cgi-bin/CGI_NAME_1?社員コード=$(社員コード)&
    @TEMPLATE=USER_NAME.htm&@FORMAT=FORMAT_NAME" name="usr_nm">
  <FRAME src="cgi-bin/CGI_NAME_2?社員コード=$(社員コード)&
    @TEMPLATE=MENU.htm&@FORMAT=FORMAT_NAME" name="usr_menu">
</FRAMESET>

もちろん、テンプレートとなるUSER_NAME.htmやMENU.htmには、文字列の表示には<FLD>#####</FLD>など適切な構文の埋め込みが必要になります。

同様に、各ページへのリンク指定も以下のようにすることで必要な引数を持ち回すことができます。

<a href="cgi-bin/CGI_NAME_○○?必要な引数1=$(必要な引数1)&
   必要な引数2=$(必要な引数2)〜〜&@TEMPLATE=
   TEMPLATE_FILE.htm&@FORMAT=FORMAT_NAME">

つまり、これまでとほぼ同様の手段・記述でフレーム構成ができるわけです。
ポイントは、<FRAME src="〜">のURL部分("〜"部分)にもCGIを指定する 点と言えるでしょう。

繰り返すようですが、テンプレート指定を受けたリンク先ファイルのHTML記述には<FLD>や<REPORT>
など適切な記述を行なう必要があります。

ただし単一のファイルの実行・表示と異なり、フレームの場合は同一タイミングで複数ファイルを
処理することとなるため、サイト全体、あるいはページ構成やリンク構成、さらにページ記述や
プログラム処理の如何によっては、十分なパフォーマンスが得られない可能性もあります。
システムへの負荷やトラフィック量の増加など、各種の調査を慎重に行なった上でフレーム構成の使用を判断するようにしてください。