ホームページ制作のフレームセットタグについて質問です。リロードをかけた際、メインフレームに表示されているページが表示されたままリフレッシュする場合(TOP以下の階層)と、TOPページにしているページをメインフレームに表示してしまう場合とがあります。現在、後者になってしまい、困ってます。できれば、前者のようにしたいと思いますが、法則とかタグの記述方式などあれば教えてください。解説付ですと嬉しいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:goba8 No.1

回答回数16ベストアンサー獲得回数0

ポイント15pt

質問の意味がわかりかねたのですが、こんなようなことでしょうか?

id:chinya

フレームセットの大きな”くくり”で参考になります。ありがとうございました。

2003/11/01 09:41:34
id:masaomix No.2

回答回数1023ベストアンサー獲得回数1

ポイント30pt

えーっと、ご質問の内容はわかります。

私もよくこれは経験します。

で、こうしたブラウザの画面更新時の動作なんですが、

これはHTMLの記述方法によって決まるんじゃなくて、

ブラウザの動作によって決まってきちゃうんです。

ブラウザの種類により差異がありますし、

私も全てのブラウザの細かい仕様まで知っているわけではないので

あまり確定的なことは言えないんですが、

どうも直前の状態を読み込んで再描画しているか、

全ての情報を破棄して新しく読み込み直しているか、

あるいはフレームページのどこにフォーカスがあるか、

といった諸事情によって、このへんの動作は随分変わってくるみたいなんです。

そんなことを考えると、ブラウザの操作によってページを更新した時に

必ず直前のフレーム内容を保持させる、という書き方をすることは、

読み出し側がどういう条件でページ更新をするかわからない以上、

原則不可能・・・・ということになってきちゃうわけなんですよね。

ご紹介したページをご覧いただけばわかるように、

フレームタグにそういった動作を記述できる余地はありません。

それでもページ更新の際に必ず直前のフレーム内容を保持させたい、

というのなら、ページ内に更新のリンクやボタンを用意して、

ブラウザの操作をしなくてもリロードが出来る、

という方式を採るのが一番スマートでしょう。

最も簡単なのは、各フレーム内のページに

自分のページに対するリンクをtarget指定せずにつけておくことです。

たとえばpage1.htmlというページには、

<a href=”page1.html”>Reload!!</a>

なんていうリロード用リンクを付けておくわけですね。

これをクリックしてもらえば、

どんな条件下でもそのページのみが再読込されて、

他のフレームの内容は保持され変わらないまま、となります。

リロード用に何か可愛いアイコンでも用意しておけば、

きっと目をひいて、みんなそれを使ってリロードしてくれるようになるでしょう。

こうした動作は、特にページ内に画像を多用する

素材屋さんなんかによくある希望ですよね。

HTMLの仕様内で実現できない要求は、別のやり方でクリアする。

このへんのアイデアのひねり方が、

Webデザインの大切な勘所になってくると思います。

なお、javascriptを使うとフレーム内容がかなり細かくいじれるようになりますが、

あまり複雑なことをやりすぎると

またブラウザによって動作が変わってきたりしますから、

単純に単純に、どんなブラウザでも、

どんな設定状況でも通用するような素朴なやり方を見つけて設計していくこと。

これまたコツのひとつだと思います。

そんなあたりも考えながら、いいサイト、作ってくださいね(^-^)/

id:chinya

とてもご丁寧な回答をいただき、本当にありがとうございます。

今回、質問させていただいているのは、ユーザー側からの突っ込みよりも、サイト上で情報を提供する私のクライアント対策なんです。

「キャッシュ等で修正箇所が直ってない!」と指摘された時、再読込してくださいとお願いするのですが、再読込させた際、TOPページが表示されてしまうと、「なんで?」とまた面倒臭い指摘をされそうなので…

ですので、私の質問の意図は、ユーザー側にリロードを期待するのではなく、クライアント対策なのです。。。

本当に面倒臭い話です。

昨日からいろいろと試行錯誤を繰り返す状態ですが、同じコンテンツを2台のサーバで試してみました。

あるサーバでは表示したページを保持しつつ、リロードする場合と、TOPページに戻ってしまう場合がありました。

不思議な状態です。

ということは、サーバーのせい?と思ってしまいます。

しかしながら、前者のサーバでも、他人の作ったサイトで前者と後者の差異も見られました。

ということは、もしかしたら方法はまだあるのかもしれません。

もっと詳しい情報をお待ちします。

masaomixさん>

本当にご丁寧なご回答、ありがとうございました。

2003/11/01 12:07:36
id:sasada No.3

回答回数1482ベストアンサー獲得回数133

ポイント15pt

http://www.srs.ne.jp/~north/netdaemon/httpd_conf.html

NetDaemon: Default httpd.conf Directives

>KeepAlive On

>接続を切らずに保持するよう指定する。

>KeepAliveTimeout 15

>KeepAlive の保留時間(秒)。

 サーバー側の設定についての話です。

 Webサーバーの側の設定でKeepAliveを設定していると、接続が保持されている間は現行のフレーム状態で再読み込みがかかることもあるようです。

 KeepAliveの設定がないか、接続が切れているときは(アドレス欄の)トップページが表示されてしまいます。

 とりあえずの対策としては、(限度はあるものの)KeepAliveTimeoutを長めに取ることでしょうか。

id:chinya

やはりサーバに依存してしまうのでしょうか…?

ありがとうございました。

2003/11/01 15:35:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません