- ベストアンサー
画面の更新!?
データベース(DB)より読み込んだデータを更新する画面を作りました。更新画面のデータをホストにおくりDBを更新して、「更新処理が完了しました。」と表示する別画面をつくり、表示するところまではうまくいっているのですが(実際にDBデータも更新されている)、その画面から、タグの「<a」を使用して、更新画面に戻ってきても、そこに表示されるデータはDBが更新される前のデータなのです。(最初に表示したDBのデータ)どうすればよいのでしょうか。ちなみにIEの更新ボタンを押すと書き換えたデータが表示されます。 説明がヘタで申し訳ありませんが、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
多分ブラウザのキャッシュにDBを表示させるURLのデータが残っているんでしょうね。 DBを表示させるのASPファイルの先頭に <% Response.Expires = -1 Response.AddHeader "Pragma", "no-cache" Response.AddHeader "Cache-control", "no-store" %> と記述してみて下さい。 それでも駄目なら、更新画面から表示画面へのリンクのURLを <a href="表示画面.asp"> となっているところを <a href="表示画面.asp?20001118162905"> とURLが常に変わるように動的にURLを作るといいかと思います。 例として日付+時刻などの文字列などでも有効かと思います。 キャッシュも効かず、URL変更するのも避けたい場合は 表示画面となるASPを呼び出した場合、内部で1度リロードするような処理をさせる方法もあります。 #オススメしませんけど おそらく一番最初のキャッシュを無効にする処理を書けば 上手くいくかと思います。 試して駄目なら症状添えて教えていただければ対応しますよ。 それでは頑張って下さい。
その他の回答 (2)
- basil
- ベストアンサー率35% (148/420)
hequilさんのおっしゃるようにキャッシュが働いている可能性が大きいですね。 このキャッシュ機能をキャンセルする方法はいくつかありますが 簡単な方法としては、HTMLのHEADタグの間に、METAタグを打つ方法があります。 具体的には下記の通りです。 <HEAD> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> </HEAD> 簡単ですのでお試し下さい。
- MAGI
- ベストアンサー率45% (5/11)
更新ボタンを押すと書き換えたデータが表示される ということは、DBを読み込む処理が通るからです。 別画面で『更新しました』などの画面から戻る処理は ブラウザの『戻る』ボタンと同じ処理にしていませんか? <FORM ACITON="表示画面" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="dummy"> </FORM> でform から submit して見てください
お礼
うまくいきました。 どうもありがとうございました。 なにかあったらまたよろしくお願いします。