CGI-BBS > SO−HO > ショッピングバスケット > Version 5.23 [前の画面に戻る]の動作について


カレッヂ
カレッヂ


質問者 JUN  投稿日 1/24(木) 22:31:13
現在ショッピングサイトを構築中で、Version 5.23を試用させて頂いております。残っているログは全てチェックしてみたのですが、同じ質問が見つかりませんでした。ここで質問するのは筋違いかなとも思ったのですが、数日間悩み続けており、思い切って質問させて頂くことにしました。IE5.5/NS6.2で動作確認しているのですが、IE5.5でのみ発生する現象です。

商品を削除した後に[前の画面に戻る]をクリックすると、削除前の画面(まだ商品が残っている状態)が表示されてしまいます。更にクリックを続ければ商品選択画面に戻ることはできるのですが、これはブラウザの仕様によるものでしょうか?お客さんが混乱してしまいそうで、ちょっと不安です。NSでは、一発で商品選択画面に飛ぶことができるのですが・・。IEでも、NSと同じように一発で戻る方法はないものでしょうか。サイトの構成上、最後に買い物をした画面に戻るには[前の画面に戻る]を使用する以外方法が無いため、解決できると大変助かります。どなたかご存じの方がいらっしゃれば、ご享受の程、どうか宜しくお願い致します。
回答者 呑兵衛@大阪  [削除]  投稿日 1/25(金) 02:07:04
原因は、ブラウザのキャッシュデータを読み込んだためです。
Netscape Ver 4.x でも起こりますのでどちらも対策してください。

○Netscape Ver 4.X 用に 550行目付近の <head></head> の間に
<meta http-equiv="Pragma" content="no-cache">
を仕込み、
○IE 用に 619行目付近の削除ボタンタグ
print "<th><input type=SUBMIT name=\";$TIME;\" value=\"削除\"></th>\n";

print "<th><input type=SUBMIT name=\";$TIME;\" value=\"削除\" onclick=\"location.reload()\"></th>\n";
とします。
質問者 JUN  [削除]  投稿日 1/25(金) 22:54:28
呑兵衛@大阪様、早速ご回答を頂き、本当に有難うございます。ご指示通りに変更してみた結果、IE5.5で以下のメッセージが表示され、削除ができなくなるようです。NS6.2でも同じような内容のメッセージが表示されます。こちらは二回ほど繰り返して削除ボタンを押せば、削除が実行されます。

↓メッセージの内容↓
情報を再送信しないと、ページを更新出来ません。
[再試行]をクリックして情報を送信するか、
[キャンセル]をクリックして表示しようとしていたページに戻って下さい。

<meta http-equiv="Pragma" content="no-cache">
のみを挿入した場合、動作に問題はありません。

print "<th><input type=SUBMIT name=\";$TIME;\" value=\"削除\" onclick=\"location.reload()\"></th>\n";
に入れ替えたとき、上記のメッセージが表示されます。

まだサーバーを借りていいないため、プロバイダーのディスクスペースに仮置きしてテスト中です。(今のプロバイダーではsendmailが使えないため、メールの送信が機能しているかは不明です。←これは関係無いですよね)
ちなみに、こちらのOSはWIN98SEです。NS4.7もPCに入ってはいるのですが、6.2をインストールした数日後、どういう訳か起動直後に強制終了されるようになってしまいました。従いまして、NS4.7での動作確認は今のところ不可能な状態です。

念のためショッピングバスケットプロ_5.23.lzhを再度解凍し、オリジナルのcargo.cgiでも試しましたが結果は同じでした。度々お手数をお掛け致しますが、どうか宜しくお願い致します。
回答者 呑兵衛@大阪  [削除]  投稿日 1/28(月) 01:15:19
location.reload を history.go(0) に変更してお試しください。
なお、この場合でもNetscape Ver 4.7x は強力なキャッシュ機能のため
連続する削除操作に対して「データがありません」を返してきます。
なので、javascript のブラウザ別ページを作成し対応させるようにすると良いでしょう。

テストは OS WindowsNT ver 4.0 sp6 IE 5.5 Netscape ver 4.7x  ver 6.2.1 です。
Mac版は試せていません。
質問者 JUN  [削除]  投稿日 1/28(月) 21:16:03
呑兵衛@大阪様、毎回貴重なアドバイスを頂き、有り難うございます。早速試して見ましたが、やはりだめなようです。

いろいろやってみた結果、商品を入れた後に一旦[かごの中身]をクリックして再度cargo.cgiを読み込めば、その後の動作はバッチリでした。(←location.reload()またはhistory.go(0)を加えたあと)この場合はキャッシュが表示されることも無く、一発で商品画面に戻ることができます。[かごの中身]をクリックせず、そのまま削除ボタンやブラウザの更新ボタンを押すと、例のメッセージが表示されるようです。

ただ、そちらで試して頂いてOKだったということですので、サーバーの方に何か問題があるのかな?とも思っています。(←無いですね、多分?)

何れにしても、削除ボタンに何か細工するか、或いは商品画面へ戻る方法を他に考えるしか無さそうですね。今度新しくサーバーを借りることにしましたので、そちらへデータをUPしてからまた色々試して見ようと思います。もしブラウザごとに最適な方法が見つかったら、振り分けは有効ですね!きっと。更に最悪どうしてもダメなら、取り敢えずかご内にその旨を書き添えることで対応しようと思います。こちらで使うカートとしては、どう考えてもレスキューさんのプロVer5が最適なので、なんとしても使いたいんです。

今回は色々教えて頂きまして、本当に有り難うございます。大変勉強になりました!

返信(回答)する


Web裏技