- PR -

フレームがずれることありませんか?

1
投稿者投稿内容
tzk
常連さん
会議室デビュー日: 2002/05/17
投稿数: 35
投稿日時: 2003-12-15 21:59
現在、JSPで画面を作っています。
ベースとなるページはフレームで4つに区切られ、その中で画面が遷移していくのですが、初期表示時に、各フレームの内容に別のフレームに表示されるべき内容が表示されてしまうことがあります。

更新をすると直るので、HTMLの記述ミスということはないと思います。
また、ブラウザのソース表示画面で見てもフレーム内のリンク先は正しいです。

この現象が不規則に起きて困っているのですが、同じような経験をされた方いらっしゃいませんか?

でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-15 22:14
・イレギュラーな動作をした時のHTML
・正常な動作をした時のHTML

これら二種類全てのHTMLを比べられた上でHTMLの記述ミスは無いと判断した、
と理解してもよろしいですか?

だとしたらブラウザのせいだと思いますので、使用したブラウザと
吐き出したHTMLを教えていただけます?

再現させてみます。

[ メッセージ編集済み 編集者: でくのぼう 編集日時 2003-12-15 22:15 ]
tzk
常連さん
会議室デビュー日: 2002/05/17
投稿数: 35
投稿日時: 2003-12-16 15:04
完全に同じソースは乗せられないのですが、以下のようになっています。
framesetのsrcで指定しているのは、/dev/*でマッピングしているサーブレットで、URLごとに対応するJSPにフォワードしています。

(ここから)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!DOCTYPE HTML PUBLIC "--//W3C//DTD HTML 4.0 Frameset //EN" "http://www.w3.org/TR.REC-html40/frameset.dtd">
<html>
<head>
<title>
</title>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<frameset cols="200, *" frameborder="0" border="0" framespacing="0">
<frameset rows="77, *" frameborder="0" border="0" framespacing="0">
<frame src="/dev/logo" scrolling="no" noresize>
<frame src="/dev/menu" marginwidth="0" margintheight="0" name="menu">
</frameset>
<frameset rows="160, *" frameborder="0" border="0" framespacing="0">
<frame scrolling="no" noresize marginheight="0" src="/dev/head" name="header">
<frame marginheight="0" marginwidth="0" src="/dev/main" name="content" scrolling="yes">
</frameset>
</frameset>

</html>
(ここまで)

でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 15:16
それでブラウザは・・・?

せめて質問には答えてください・・・。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 15:25
追加で質問を。
ご回答お願いします。

・各サーブレットは単にJSPへフォワードを行っているだけですか?
 他の処理はありませんか?
・行ったHTMLのチェック方法を教えていただけますか?
 再現時の手順が無いと困りますし・・・。
・実際に発生するイレギュラーな動作の具体的挙動を教えていただけますか?
 つまり、間違ったフレーム構成です。

よろしくお願いします。
tzk
常連さん
会議室デビュー日: 2002/05/17
投稿数: 35
投稿日時: 2003-12-16 15:46
ぬけがありました。お許し下さい。

ブラウザはIE5.5SP2、IE6SP1、NN6で確認しています。
確認方法はIEであれば、ツールバー「表示」→「ソース」でフレーム全体のhtmlソースを確認しています。イレギュラー表示時も正常表示時もこのソースに差異は見られません。全て同じです。
イレギュラー動作時は、例えばmenuというフレームに/dev/logoの内容が表示されます。これは一例で、どのフレームにどの内容が表示されるかはランダムになってしまっています。フレーム一つ一つを個別に最新化すると確実に直ります。

各サーブレットではXMLを読んで、URLに紐付けられたJSPを検索し表示します。
一つ思い当たったのですが、フレーム4つで同時にサーブレットを呼んで、その中のフォワードが間違っているのではないか?という気がしてきました。
URLはあっているけど、それに対してきちんと並列に処理されず、混線してしまっているような気がします。

でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 15:54
引用:

フレーム一つ一つを個別に最新化すると確実に直ります。



ここが非常に危なっかしいような。
表示するべきJSPを決定するための何らかの変数が
スレッドセーフになっていないのではないですか?
意識して書きました?
tzk
常連さん
会議室デビュー日: 2002/05/17
投稿数: 35
投稿日時: 2003-12-16 16:01
引用:

表示するべきJSPを決定するための何らかの変数が
スレッドセーフになっていないのではないですか?
意識して書きました?



ご指摘ありがとうございます。このあたりを再度見直してみます。
大変助かりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)