このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

IEのキャッシュについて

発言者:TN
( Date Wednesday, February 14, 2001 12:33:25 )


IEでのブラウジングで、「戻る」ボタンのクリックで前ページに遡らせない
ようにしようと、キャッシュをクリアする方法を試してみました。
ここの会議室の過去ログも参照し、
<META HTTP-EQUIV="Expires"CONTENT="0">
or
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
or
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
の方法があることがわかり、全て試してみましたがやはり、キャッシングさ
れてしまいます。

一番確実なのは、表示中のページに現在のWindowを閉じ、新たにWindowを開
くことだと思い、Java ScriptでWindow.close()を試したのですが、
Mac用のIE(最新版)ではそのままWindowを閉じてくれるものの、Win用の
IE(最新版)では、必ず確認用のダイアログが表示され、「OK」ボタンを
クリックしなければ閉じることができません。

そこでお願いです。
上記3通りの方法以外でキャッシングさせない方法か、Java Scriptで確認ダ
イアログを表示せずにWindowを閉じさせる方法をご存じの方がいらっしゃい
ましたら、是非ともお教えいただきたいと思います。

よろしくお願いします。

いその@とし研 さんからのコメント
( Wednesday, February 14, 2001 14:30:47 )

キャッシュと履歴を混同されているようですね。(^_^)
キャッシュは、ページのソース(HTML)や画像などを一時的にクライアント側で蓄え、毎
回サーバからダウンロードする手間を省くものです。
一方履歴は、訪れたページの URL を記録しています。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> などを記述すればキャッシュはされま
せんが、履歴には残ります。

では履歴に残さない方法ですが、Netscape であれば、例えば JavaScript で location
を操作する方法があります。

<HTML>
<HEAD>
  <SCRIPT LANGUAGE="JavaScript1.1">
  <!--
  function jump(){
    window.location.replace("ジャンプさせたいページのURL")
  }
  // -->
  </SCRIPT>
</HEAD>
<BODY onLoad="setTimeout('jump()',0)">
</BODY>
</HTML>

# 上記のページをサーバに置くと履歴に残りません。
# ローカルで、file:/// で開くとちょっと違う結果になります。

しかし IE ではやっぱり履歴に残ってしまいますね。(^_^;;
# JavaScript で history をいじくるとできるかな〜

TN さんからのコメント
( Wednesday, February 14, 2001 15:25:31 )

>キャッシュと履歴を混同されているようですね。(^_^)
>キャッシュは、ページのソース(HTML)や画像などを一時的にクライアント
>側で蓄え、毎回サーバからダウンロードする手間を省くものです。
>一方履歴は、訪れたページの URL を記録しています。

お恥ずかしい。おっしゃるとおり、混同して質問していました。
自分が残したくないのは履歴です。

>しかし IE ではやっぱり履歴に残ってしまいますね。(^_^;;

IEでの利用が前提なのです。
せっかく解決方法をご呈示していただいたのに申し訳ありません。

いその@とし研 さんからのコメント
( Wednesday, February 14, 2001 15:52:45 )

では、スクリプトで、ボタンや移動メニューのないウィンドウを開かせる、
ってのはどうですか?
# それでも IE はウィンドウ毎の履歴じゃないからダメか...

TN さんからのコメント
( Wednesday, February 14, 2001 17:00:39 )

>では、スクリプトで、ボタンや移動メニューのないウィンドウを開かせる、
>ってのはどうですか?

履歴が残っていると、マウスボタンの右クリックで「前に戻る」が表示され
てしまうので、ウインドウ上の「戻る」ボタンを隠してもだめみたいなので
す。

というわけで、一番最初の質問にも書いたように、Java Scriptを利用して一
端開かれているWindowを閉じ、次のWindowを開くのが確実と思ったわけで
す。
でもWindowを閉じる毎に確認のダイアログが表示され、ユーザがいちいち
「OK」ボタンをクリックするのも煩雑になりすぎるので....。

miyake さんからのコメント
( Wednesday, February 14, 2001 18:47:20 )

WinのIEなら起動時のオプションに「-k」をつけてキオスクモードに
マウスの右クリック禁止の為
<body oncontextmenu="return false">
でどうでしょうか?
IE4はダメですが、5もしくは5.5なら右クリックしてもメニューが出ません。
(キーボードでは戻れてしまいますが)

TN さんからのコメント
( Wednesday, February 14, 2001 19:40:01 )

miyakeさんコメントありがとうございます。

><body oncontextmenu="return false">

ありがとうございます。解決に向けて一歩近づきました。
さっそく設定してみたところ、右クリックによるコンテクストメニューを
非表示にすることができました。

>WinのIEなら起動時のオプションに「-k」をつけてキオスクモードに

これは、恥ずかしながらMac使いなので今ひとつ意味がよくわからないので
すが、HTML中に記述するパラメータなのですか?
起動時のオプション設定項目に記述する欄があるのでしょうか?
せっかく策を考えていただいたのにもかかわらず、意味が理解できず
申し訳ありません。

今泉克美 さんからのコメント
( Wednesday, February 14, 2001 22:59:02 )

TNさんに
質問です。

>IEでのブラウジングで、「戻る」ボタンのクリックで前ページに遡らせない
ようにしようと、

なぜこうしたいのでしょう?よろしければ
出きるだけ具体的におしえてください。

その要件次第では
まったく別な発想が出てくるかもしれません。

戻るのを禁止する方法ではなくて。

なにか本質的に、どうしても
戻りたくない理由があると思うんですね。

たとえば
戻ると訪問カウンタを2重に踏んでしまうからイヤだとか。
その場合には、2重にカウントしないカウンタを
入手可能かもしれませんよね。レンタルでそういうの
ありますし、クッキーの工夫で作れないこともない。。??

状況によっては別解がありそうな気がします。

TN さんからのコメント
( Thursday, February 15, 2001 00:41:01 )

>なぜこうしたいのでしょう?よろしければ
>出きるだけ具体的におしえてください。

簡単に言うと、複数台のWindowsマシンから、不特定の人がIE上に表示された
複数ページに渡る設問に回答していきます。
回答は答えた本人以外に、どのような経路で最後の終了ページに至ったか、
また、各ページにどのような回答を行ったか見られてはまずいのです。

というわけで、安易にたどった履歴が見えないように、また履歴をさかのぼ
れないようにしたいというわけです。

なお、Webサーバマシンは、Windows NT、WebサーバソフトはFileMakerのカス
タムWeb公開機能を利用し、データは直接FileMaker内に格納します。
ちなみにインターネットには接続せず、あるイベントの開催期間中だけク
ローズドな環境でのみ使用します。

これでは回答になっていないかもしれませんが、このような感じです。

mokkosan さんからのコメント
( Thursday, February 15, 2001 09:57:07 )

回答になってないかもしれませんが、
静的なHTMLであるので遡れると言う事になります。
その都度ファイルメーカから動的にHTMLを書き出せば、
遡れないと思うのですが・・・。

ちなみに、ファイルメーカはサーバに使ってないので、
この方法が可能かどうかは知りません。
マシンパワーがあれば、アップルスクリプトで
書き出すと言う事もできうるかと・・・。(^。^;)

#いっそのこと、WebObjectsなら、いとも簡単なのだが・・・。

miyake さんからのコメント
( Thursday, February 15, 2001 10:58:31 )

TNさん、少しはお役にたてて光栄です。

『スタート』→『ファイル名を指定して実行』
参照でprogram filesのなかのIEのフォルダ内にあるIexplore.exeを選択
--------------Iexplore.exe"
の後に『半角スペース』『-』『k』をつける
--------------Iexplore.exe" -k
これでOK押すとキオスクモードで起動出来ます。
もうひとつは上記場所にある本物のIEのエイリアス(winではショートカット)
をとってそのプロパティ内のショートカットのリンク先と言うところに
上と同じ方法で『 -k』をつければ、起動出来ます。

私もMac使いです。

TN さんからのコメント
( Thursday, February 15, 2001 14:00:32 )

>mokkosan さんからのコメント

貴重なご意見、ありがとうございます。

>その都度ファイルメーカから動的にHTMLを書き出せば、
>遡れないと思うのですが・・・。

システム内容とあわせ、検討してみます。

>マシンパワーがあれば、アップルスクリプトで
>書き出すと言う事もできうるかと・・・。(^。^;)

OSは、Windows NTなので、この方法は使えません。

TN さんからのコメント
( Thursday, February 15, 2001 14:02:42 )

>miyake さんからのコメント

>--------------Iexplore.exe"
>の後に『半角スペース』『-』『k』をつける
>--------------Iexplore.exe" -k

丁寧な解説をしていただき、ありがとうございます。
こういったことができるとは、全く知りませんでした。
早速試させていただきます。

TN さんからのコメント
( Thursday, February 15, 2001 14:22:03 )

miyakeさんから教えていただいたキオスクモード、早速試してみました。
解説していただいた方法で、件のモードで表示することができました。

キーボードで遡れてしまうのはしょうがないとしても、miyakeさんから
教わった、コンテクストメニューの非表示+キオスクモードで対応する
方法が、現状のシステムに手を加えることなく進められるので、自分に
とっては一番楽な対応方法だと思います。

ご親切にありがとうございました。感謝します。