1回だけリロードするには?

[上に] [前に] [次に]
フシギダネ 2000/02/29(火) 15:49:41
過去にもこんな質問が上がっていたのを見たのですが、決定的な解決策がないみたいで、再度質問します。
ページ(HTML)が表示されたタイミングで一回だけリロードしたいのですが・・・。
Cookieという手もあるとは思いますが、残念ながらCookieは使用するな。という事です。
JavaScriptでonLoad=location.reload()とかonFocus=location.reload()とかやると、無限にリロードしてしまいます。
METAタグのRefreshは何秒おきにという設定しかできないみたいし。
助けて下さい。

EMI 2000/02/29(火) 16:12:28
こんな感じのCGIにしては?

if($ENV{'QUERY_STRING'} eq "reloaded"){
  print "Refresh: 0; url=http://xxx.xxx/xxx.html?reloaded\n";
}

ただ、これだとブラウザによっては動作保証ができない気がする感じなのでmeta要素を使ってこうとか。

if($ENV{'QUERY_STRING'} eq "reloaded"){
  print "<meta http-equiv=\"Refresh\" content=\"0; url=http://xxx.xxx/xxx.html?reloaded\">\n";
}

うーん 2000/02/29(火) 16:29:19
> ただ、これだとブラウザによっては動作保証ができない気がする感じなのでmeta要素を使ってこうとか。

謎。
ヘッダに書いてもダメなのにmetaでやればうまくいくなんてケースあるんですか?

EMI 2000/02/29(火) 16:39:47
いや、むしろそういうブラウザがありそうだなって気がしたので。
そんな感じでヘッダは見ないけどmetaだけ見るとか。
別に、裏はとってないです。すいません。

チャペル 2000/02/29(火) 16:46:14
見えないフレームを作っておいて、そこに「1回リロードしましたよ」っていうフラグを持たせるとか・・・。
(あまり、良いやり方ではないかも・・・)

フシギダネ 2000/02/29(火) 16:49:17
> print "Refresh: 0; url=http://xxx.xxx/xxx.html?reloaded\n"

これだとブラウザの戻るで、戻れませんよね。
print "Location: URL\n\n";
だと、ブラウザの戻るで戻っても、リロードしてくれないし・・・。
困りました。

フシギダネ 2000/02/29(火) 18:04:42
あのー、もうコメントないですか?
困ってます。
誰か助けて下さい。

EMI 2000/02/29(火) 18:11:38
それ以前のページに戻りたいのでしょうか?
戻るボタンを二回(あるいはそれ以上)いっぺんに押せば戻れますが。

フシギダネ 2000/02/29(火) 18:19:31
コメントありがとうございます。

>それ以前のページに戻りたいのでしょうか?
実は、ブラウザの戻るで戻った時に不具合が発生してて、HTTPのセッション(Appliction Server使用)と画面の表示で、矛盾が発生しているのです。
この矛盾をリロードによって、回避すれば、ブラウザの戻るも正常に使え、且つ矛盾も発生しないのではと考え、壁にぶつかった状況です。
なんか方法無いですか?

??? 2000/03/07(火) 16:44:06
  時間が来たら他のページへ移動する場合(違うページ)
<META HTTP-EQUIV="Refresh" CONTENT="時間;URL=行きたい先のアドレス">
 時間は秒単位で半角のアラビア数字で入れて下さい。アドレスはhttp:から入れて下さい。

びーだま [E-Mail] 2000/03/07(火) 19:43:50
これ、難題でしたね。。 結構考えました。

JavaScript つかえることは前提で良いですか?

たとえば、index.html にアクセスしたとします。
index.html が onLoad されたとき、location.search の
プロパティを調査し、何もついていなければ何か適当なクエリー
ストリングを付け足してそれを location.href で飛ばします。

たとえば、

index.html?Refresh

みたいなかんじです。そして、次に、おなじくこのドキュメントがロード
されたときに、location.search を調べると、今度は、さきほど付け加えた
クエリーストリング Refresh がついていますから、これを見つけた場合は
ロードさせないようにすればうまくゆくんじゃないかな。。。と思います。

どうでしょう?

びーだま [E-Mail] 2000/03/07(火) 19:57:25
あまり重要な事ではないのでなんですが(^^:

ロード完了したときに Refresh とでるのもなんなので、
Reloaded とかのほうが見た目良いですね。(^^;

それだけです。

たれ 2000/03/07(火) 20:34:54
アクセス
    →クッキーがあればクッキー削除 →なにもしない
     なければクッキー発行     →リロード

とか。
無論、クッキーをオフにされていると無限ループになるはずです。
うーん、だめか。

フシギダネ 2000/03/07(火) 20:46:08
[[解決]]
皆様いろいろありがとうございました。

びーだまさんすばらしい案ありがとうございました。
採用させて頂こうと思います。

[上に] [前に] [次に]