• 締切済み

カゴ購入ボタンで不思議な現象があります!

添付画像参照。 ネットショップを営んでいます。 販売中は甲の表示をしています。 売り切れると乙表示になります。 乙の「売切」は画像ファイル.gifです。私がソースを書き換えています。<IMG src="...gif"> 売り切れ表示をした後、お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。 ところがお客さんからは、たまに注文が入る場合があります。 甲でないとカゴボタンが無いので注文できないはずなのに・・? キャッシュというのも内容は最新の表示ですよね? 私がお気に入りから確認するのもキャッシュが働いていると思います。 (質問) どうして乙表示なのに、たまにお客さんから注文が入るのでしょうか? お詳しい方が居られましたら、宜しく願います。

みんなの回答

  • wek00
  • ベストアンサー率62% (90/145)
回答No.14

このサイトの過去logに、ブラウザがなぜかキャッシュを見に行くようになってしまったという事例がありました(すぐ見つかりますよ)。 > 私に学習させないで解りやすく解説して下さい。 おかしな客ばかりで毒されてしまったのでしょうか。お気をつけください。卑しい根性をさらけ出してしまうと、あなたの要求に応えられるプロ級の方がいらしても回答する気をなくしてしまうでしょう。

kfjbgut
質問者

補足

>卑しい根性をさらけ出してしまうと、あなたの要求に応えられるプロ級の方がいらしても回答する気をなくしてしまうでしょう。 それは回答できない方たちが多く発する言葉です。 この相談箱というのは、私のような考えの方が殆どでしょう。 この回答で一歩ずつ知識がついていく。何が悪いのでしょうか? >すぐ見つかりますよ 勉強の仕方を聞いているわけじゃない。 下記の回答を記述するほうが早い。 答えが解らないのなら参加する必要ないです。 >>あなたがいう古いブラウザとは? 西暦*年までのものを言うのか? *年以前のブラウザを使用しているのは何パーセントの人達か。

  • wek00
  • ベストアンサー率62% (90/145)
回答No.13

ひょっとしたら私がイメージしていることがあなたが問題にしていることと全然別の現象のことだったりするかもしれないので、私が想像する古いキャッシュが使われるシナリオの例を書いてみます。 1.Webサーバにて、甲のデータが公開される。 2.あなたは、確認の為ブラウザでページを閲覧する。   (あなたがお使いの端末のブラウザのキャッシュをキャッシュSとします)   キャッシュSは甲のデータ。ブラウザの表示も甲。  ~~しばらく時間が経過~~ 3.あるお客さん、Cさんがページを閲覧する。   (Cさんが使っている端末のブラウザのキャッシュをキャッシュCとします)   キャッシュCは甲のデータ。ブラウザの表示も甲。   購入するものの候補になりそうだということでブックマークする。  ~~しばらく時間が経過~~ 4.売り切れになったので、あなたはWebサーバのデータを乙に更新する。 5.あなたは、確認の為ブラウザでページを閲覧する。   あなたがお使いのブラウザはサーバ上のデータが更新されたか   確認する設定になっていた。確認したところ   キャッシュSのデータはサーバ上のデータより古いことが判明した。   ブラウザはサーバからデータを取得しなおしキャッシュSに入れる。   キャッシュSは乙のデータになり、ブラウザの表示も乙。   あなたがお使いのブラウザでは、   「キャッシュとは常に新しいデーターが表示している」(原文ママ)   という結果になる。  ~~しばらく時間が経過~~ 6.お客Cさんは、あなたが販売していた商品を購入することにし、   自分の端末のブラウザのブックマークからページを開いた。   このブラウザはキャッシュを更新しなかった。   ブラウザはキャッシュCにある当該ページのデータを表示する。   キャッシュCのデータは甲なのでブラウザの表示も甲。 7.お客Cさんは甲のページから注文を行う その他に気になったことについて。 > 全員がこの事実の説明を避けています とお書きになりましたがそれは当たりません。寧ろどの投稿も関係がある内容です(反例)。記述を読み飛ばしてしまったのでしょうか?もう一度最初の投稿から読み直してください(少なくとも本文は)。ここのような読み返せるサイトに既に投稿済みの内容と似たり寄ったりの内容を再投稿するのは好ましくないので、普通はやりません。読み飛ばしをやらかすとすれ違いになります。 ご自身で検索なさってもすぐに同様のページが見つかりますが、一応。 参考: キャッシュ 更新 - Google Search https://www.google.co.jp/search?q=%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5+%E6%9B%B4%E6%96%B0 サイトが更新されない!! IE8でキャッシュをクリア http://pc.beginners-luck.net/pcwp/2012/01/27/ie8-cache-clear.html ブラウザのキャッシュクリア方法 ~ホームページが更新されていない!?~ https://www.kbs-web.com/solution/item/hpinfo/cash.html ホームページの更新をすぐ反映させる方法 ~キャッシュを残さない方法~ https://www.kbs-web.com/solution/item/hpinfo/nocash.html ページが変更されていない? https://www.koushinclub.com/blog/882.html リダイレクト キャッシュ - Google Search https://www.google.co.jp/search?q=%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88+%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5 ブラウザキャッシュのまとめ - Please Sleep http://please-sleep.cou929.nu/browser-caching-tutorial-memo.html HTTP キャッシュ | Web | Google Developers https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=ja

kfjbgut
質問者

お礼

1 先ず、私は解らないから相談箱を利用しています。 よって、私に学習させないで解りやすく解説して下さい。 2 1~7の例ですが、こんなに長く書く必要がないと思います。 6番「このブラウザはキャッシュを更新しなかった。」どうしてしなかったか? 答えはブラウザが古いから・・ 私は古いブラウザなんか現在使っている人はいないと思う。何故なら、他のサイトが表示されないから・・ 私はIE8とIE6は確認済みです。新しいブラウザです。 そうすると益々、あなたがいう古いブラウザとは、にわかに信じがたい。 あなたがいう古いブラウザとは? 西暦*年までのものを言うのか? *年以前のブラウザを使用しているのは何パーセントの人達か。 これを信憑性のある根拠をもって提示しなければ「古いブラウザ」が原因かどうか判断できない。

回答No.12

>けどありえないです。そんなに古いブラウザなら多くのサイトが表示されないです。 そんな反応が返ってきそうだから、書かなかったんですよ。 おそらく私が書くまではこんな機能があることも知らなかったのに、なんでこの機能が未搭載のブラウザだと多くのサイトが表示されないと判断できるんですか? 古いブラウザを使い続けている人は案外います。 下記URLの情報を見れば、Chrome45とかIE8がランクに入るくらい使われていることがわかります。また、「バージョン別ブラウザシェア」の円グラフから30%超がOtherに分類されていて、「ブラウザシェア」のOtherの数値と比較すれば、各ブラウザでランキングに入らない古いバージョンが前者のOther大部分を占めていることがわかるはずです。 http://news.mynavi.jp/news/2017/09/04/067/ しかも、ここまでの話は設定どおりにキャッシュ機能が動作している場合です。検索してみるとわかりますが、設定どおりに動作しないというトラブルは結構あります。Webアプリケーションを作成すると、結構な確率でこの問題に引っかかるので、今回のような質問があると、キャッシュの問題を指摘する回答が多く寄せられることになります。

kfjbgut
質問者

お礼

新規搭載は西暦*年からか。 *年以前のブラウザを使用しているのは何パーセントの人達か。 これを信憑性のある根拠をもって調査できないと判断できません。 因みにIE8は新規搭載です。私の所有する1台です。

回答No.11

ブラウザがキャッシュの機能を搭載したとき、当然情報が更新されないという弊害が発生しました。 そのため、Webアプリケーションのように更新されないと困るところはキャッシュを行わないように設定するようになりました。 そうすると、キャッシュの意味が薄れていくことなります。 そこで、キャッシュの機能に追加が行われました。追加された機能は、ブラウザが表示しようとしたデータのキャッシュを見つけた場合に、そのキャッシュが古くなっていないか確認できる機能です。ブラウザがサーバーにキャッシュの日時を送信すると、対象のファイルが更新されている(キャッシュが古い)場合には新しいデータが送信され、キャッシュが古くない場合には「キャッシュを使え」という応答をします。 おそらく、あなたが操作すると最新の表示になるのはこの機能のおかげです。 ただし、この機能は後から加えられた機能なので、ブラウザのバージョンが古いと搭載されていない可能性があります。そういったキャッシュの確認機能が使えない状況では、古いページが表示され続ける可能性があります。 また、最初の回答にあるPROXYサーバーというものがサーバーとブラウザの間を仲介している場合は、サーバーやブラウザの機能や設定だけでなく、PROXYサーバーがどのようにキャッシュを扱うように設定されているかで挙動がかわります。 なので、あなたが使用しているブラウザと種類・バージョンが違う場合や、通信環境が違う場合には、古いキャッシュがそのまま表示される可能性があるということです。

kfjbgut
質問者

お礼

古いブラウザの件、おもしろい節ではありますね。 けどありえないです。そんなに古いブラウザなら多くのサイトが表示されないです。 現実的な節ではありませんね。

  • wek00
  • ベストアンサー率62% (90/145)
回答No.10

> もしキャッシュが効いていたなら乙に変るはずないのです。 ふうむ。質問者さんが言うキャッシュと回答者の人たちが言うキャッシュはどうやら別のもののようですね。 あなたが言う「キャッシュ」はキャッシュサーバのようなものですね。 Webサーバへのリクエストがあったときに同じデータを持っていれば自分がWebサーバのかわりにクライアントにデータを送ります。これであれば、更新が反映されれば以降他者がアクセスしても更新後のデータが表示されるのでそれで話は終わりです。 二昔くらい前ですが、サーバとクライアントの中間で動作しキャッシュとURLが一致したとき代理応答する仕組みがそこそこ使われました。私が使っていたプロバイダも提供していました。 現在はWebサーバ側でキャッシュサーバ上のデータを見るようにアクセスを振り分けるんだったかな?詳しくないですが、形を変えて今でも盛んに使われているらしいですね。こういうのは大元のWebサーバと区別して扱わなくてもいいんじゃないかと思います。(私はあえて触れなかったわけではなく忘れていただけですが) 他方、No9までの回答者が想定する「キャッシュ」は利用者の端末上でブラウザがウィンドウ(タブ)毎に管理する一時保管データのことです。

kfjbgut
質問者

お礼

この回答がありません。 1 私の疑問は、 >「お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。」 これは乙表示後に開いた画面です。これで乙になっていることを確認しています。ショップとして当然でしょう。 もしキャッシュが効いていたなら乙に変るはずないのです。 だからキャッシュとは常に新しいデーターが表示していると主張しているんです。 しかし、全員がこの事実の説明を避けています。 誰も説明できる人がいない。

kfjbgut
質問者

補足

追伸 >「お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。」 これは乙表示後に開いた画面です。これで乙になっていることを確認しています。ショップとして当然でしょう。 どうして乙になるのですか? この説明を求めています。 皆さんこの回答に触れようともしませんね。

  • wek00
  • ベストアンサー率62% (90/145)
回答No.9

私も、古いキャッシュデータを使った注文可能状態のページから注文が入ってくるというのが最もありえそうなパターンだと思います。 基本的なことについて確認を。 WebサーバにあるWebページのデータをWebブラウザで閲覧する場合、サーバ上のデータがブラウザ側に複製され(データを取得=複製)、ブラウザはそのデータを表示します。同じページを複数のウインドウ(タブ)で開いたときにはウインドウ(タブ)毎に複製されます。 次のようなテストを行うとどうなるでしょう? 1.Webサーバ上のページデータを甲にする。 2.ブラウザの二つのウインドウ(ないしはタブ)でそのページを表示し、開いたままにしておく。 3.Webサーバ上のページデータを乙にする。 4.二つのうちの片方を再読み込みしサーバ上のページが乙になったことを確認する。 5.もう片方のページから注文をしてみる    *   *   *   *   * ページデータがどんなところに「保持」される可能性があるかというと、 ・個々の端末のブラウザのメモリキャッシュ(ずぅーっとそのページを開いておく場合) ・個々の端末のブラウザのディスクキャッシュ(既に指摘されているケース。起動し直しても「ずっとそのページを開いておいた」ように見せることができるブラウザもある。←後で見たいページのタブを開いておきブックマークのように使うらしい。また、私は以前、通信量を抑えるためキャッシュにデータがあればサーバにアクセスしないよう設定していました。まれにそういう人もいるかも) ・WebページをHDDなどに保存したもの ・Googleなどの検索エンジンのキャッシュ ・Cloudストレージ(ブラウザと連携しWebページを保存しておいて後で/別の端末でも/オフラインでも読めるなどと謳うサービスがあるそうです) といったものが私が知る範囲でもあります。私は詳しいわけではないのであくまで一部です。

kfjbgut
質問者

お礼

第1文は注文が入っても疑問でないですよ。 最初に表示しているA 次に表示したB 乙に変更後Bを再読み込みした。 Аから注文はできると思います。 再読み込みしなければ表示の途中で甲から乙になりませんわ。 1 私の疑問は、 >「お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。」 これは乙表示後に開いた画面です。これで乙になっていることを確認しています。ショップとして当然でしょう。 もしキャッシュが効いていたなら乙に変るはずないのです。 だからキャッシュとは常に新しいデーターが表示していると主張しているんです。 しかし、全員がこの事実の説明を避けています。 誰も説明できる人がいない。 2 第2文は参考にさせて頂きます。

回答No.8

> 完売表示後、数日後に入る注文の話です。 質問文に書かれていないことを理解できる人がいると思いますか? >「お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。」 >この文章は、「売切」表示に変更する前にページを表示していない。ということでしょ! あなたが確認している状況の説明であって、お客さんがどのような状態なのかは別の話だと思いませんか? 数日後でもおこりそうな状況は想像できますが、今の状態ではお話しする気になれないです。 他の回答者からの反応がないのも、同じような理由じゃないですかね。

kfjbgut
質問者

補足

>この文章は、「売切」表示に変更する前にページを表示していない。ということでしょ! そうですよ!だからあなたが言っているようなページを表示中に乙に変更したわけでもないってことです。 >今の状態ではお話しする気になれないです。 反論はいいが、説明も必要でしょ!そうでなければ知らないとしかいいようがない。 全く言及していない。

回答No.7

「売切」表示に変更する前にページを表示していた場合に問題があることを指摘しているのに、その前提を受け入れないのであれば、これ以上回答しても意味がないので撤退します。 それで困るのはあなただけですから。

kfjbgut
質問者

お礼

>「売切」表示に変更する前にページを表示していた場合・・ 私の相談には次のように記載しているでしょ。 「お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。」 この文章は、「売切」表示に変更する前にページを表示していない。ということでしょ! 国語力の問題です。答えが解らないといって話をすり替えないで頂きたい。

kfjbgut
質問者

補足

それともう一つ参考までにいっときます。 この問題は、「完売」表示して数分後の問題ではありません。 完売表示後、数日後に入る注文の話です。 解ります?いっていること理解できます?

回答No.6

>9:50にお客さんがアクセスしてページを表示したまま退席 >10:00に「完売」に変更 >10:10にお客さんが戻ってきて表示されているページを更新せずに購入処理を行う この場合はキャッシュは関係ありません。9:50時点で最新の情報では、まだ完売にはなっていませんから。 10:10に操作を再開しても、画面上には9:50時点の情報が表示されていて、10:00の変更は反映されないので、「カゴに入れる」ボタンが存在してクリック可能なはずです。 この点を指摘している回答は他にないと思いますけど。

kfjbgut
質問者

お礼

>売り切れ表示をした後、お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。 この現象を説明できる方が一人もいないのです。 これがある限り、その都度新規表示されていると考えるのが妥当でしょう。

回答No.5

>キャッシュというのも内容は最新の表示ですよね? この認識が間違いです。 キャッシュというのは、同じファイルを何度も読みにいかなくて済むようにするしくみで、それを有効に機能させるためには、一度読み込んだファイルは一定時間内であれば変更されないという前提で以前に読み込んだものをそのまま使用するという処理を行います。それではまずい場合もあるので、サーバー側でキャッシュの有効期間を設定したり、キャッシュ自体を無効にしたりできるようになっています。 また、今回の質問のような現象は、キャッシュ以外でも起こりえます。 例えば、 9:50にお客さんがアクセスしてページを表示したまま退席 10:00に「完売」に変更 10:10にお客さんが戻ってきて表示されているページを更新せずに購入処理を行う といった場合も考えられます。 また、表示を「完売」にするだけでは、その時点でかごに入れられている分については購入処理に進めてしまう可能性もあります。 システム的に「完売」の場合の処理を作成しておいたほうがいいと思います。

kfjbgut
質問者

お礼

あなたの回答は、他の方々からもご指摘を受けております。 ただ、私も相談に記載しているように次の状況があるわけです。 >売り切れ表示をした後、お気に入りに登録しているサイトを表示させて売り切れ表示の確認を行なっています。 この現象を説明できる方が一人もいないのです。 これがある限り、その都度新規表示されていると考えるのが妥当でしょう。

関連するQ&A

  • 画像サイズを指定する

    1~6まで全て同じサイズ(200*100)の画像があります。 この画像を下記のスクリプトを使用してランダムに表示させ、 マウスを重ねるとその画像に対応した画像に切り替わる (画像1なら画像4という風に) ということをしているんですが、 表示サイズを300*150で表示させるためには どうしたらいいのでしょうか? <script language="javascript"> <!-- //ランダムにgazouを表示 img = new Array(); img[0] = "画像1.gif"; img[1] = "画像2.gif"; img[2] = "画像3.gif"; img[3] = "画像4.gif"; img[4] = "画像5.gif"; img[5] = "画像6.gif"; n = Math.floor(Math.random()*3); m = n+3; document.write("<img src='"+img[n]+"' border='0' onmouseover=src='"+img[m]+"' onmouseout=src='"+img[n]+"'>"); //--> </script> 基本的なことで申し訳ありません。 どなたかわかる方がいらっしゃれば宜しくお願い致します。

  • firefoxで表示される画像がIEで表示されない

    同じHTML内に <img src="images/9.jpg" alt=""商品画像 /> と <img src="images/title_1.gif" /> がありますが firefoxでは上記の画像を含めすべての画像が表示されますが IEでは <img src="images/title_1.gif" />は表示されるが <img src="images/9.jpg" alt=""商品画像 />は 表示されません。 なぜか判りません。 原因がまったくわかりません。 教えてください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • ロールオーバー画像の枠線を消したい

    初めてホームページ作成中の超初心者です。 ロールオーバーで、下記のタグで表示させたのですが、画像の枠線が出てしまいました。 普通に<img src="img1.gif">と書くと出ない画像なんですが・・・ リンク画像の枠線を消すのと同じ要領でborder="0"とも書き加えてみましたが、(4ヶ所とも)今度は何も表示されなくなってしまいました。 <問題のタグのひな形> <a href="http://www-------"onmouseover = "document.bt.src = 'img1.gif'" onmouseout = "document.bt.src = 'img2.gif'"onclick = "document.bt.src = 'img3.gif'"><img src = "img2.gif" name="bt"></a> どうぞ宜しくお願いします!

  • 1つの画像オンマウスで3つの画像を切り替えたい!

    現在、下記のような感じで一つの画像オンマウスでその画像を含む3つの画像が切り替わるようにしています。 ---------------------------------- <a href="#" onMouseOver="11111.src='a.gif';22222.src='b.gif';33333.src='c.gif'" onMouseOut="11111.src='a_01.gif';22222.src='b_01.gif';33333.src='c_03.gif'"><img src="aaaaaa.gif" alt="" width="94" height="32" border="0" name="11111" /></a> <img src="b_01.gif" alt="" width="572" height="50" name="22222" /> <img src="c_01.gif" alt="" width="96" height="32" border="0" name="33333" /> ---------------------------------- IE6だと、きちんと表示されるのですが、 Firefoxだと表示がおかしくなります。 改善方法はありませんでしょうか? 助けてください!

  • 画像を重ねて表示したい

    画像を表示するタグで<img src="a.gif"><img src="b.gif">と書くと、横に並んで表示されます。ごく当たり前か。。 んで、このa.gifとb.gifを重ねて表示したいです。a.gifを手前、b.gifを奥というかんじです。 2つの画像は同じ大きさです。 何かいい方法ありませんか?アドバイスお願いします。 連続の質問で申し訳ありません。

    • ベストアンサー
    • HTML
  • 画像の間隔を詰めたい

    以下の画像の間隔を詰めたいのですがb-95.gifとその左右にあるb-305.gifとの間隔が埋まりません。 この画像はアイコンで、提供してくれるサイトにある見本ではちゃんと 感覚が埋まっているのですが、どうすればいいのでしょうか? <img src="hiyo_43.gif"> <img src="b-325.gif"><img src="b-305.gif"> <a href="index.html"> <img src="b-95.gif" border="0" onmouseover="this .src='b-105.gif'"> </a> <img src="b-305.gif"><img src="b-102.gif">

    • ベストアンサー
    • HTML
  • 画像 表示について質問です。

    画像 表示について質問です。 <?php echo '<a href="A.php"><img src="img/advance.gif" wwidth="80" height="80" style="border-style:none;" onmouseover="this.src="img/returen2.gif";" onmouseout="this.src="img/returen.gif";" /></a>'; ?> と考えたのですが、画像は表示されるもののONマウスの時に画像が変化しません。 どうしてなのでしょうか。

    • ベストアンサー
    • PHP
  • 画像を保存する場所

    おはようございます。質問をさせてください。 htmlで画像を貼り付けるときには、 『<img src="">』 『<img src="フォルダ名/xxx.gif">』 『<img src="../フォルダ名/xxx.gif">』 などを使いますよね。 あるサイトで、自分のPCにしかないフォルダの画像は表示されない、とありました。 そこでお聞きしたいのですが、私はhtmlのメモ帳と画像を、ネットワークに保存しています。 そのネットワークは、サーバーが担っているので、私のPCに入れると重くなると思って使っています。 もしかしたら、ここの保存していると、画像が表示されないのでしょうか。 やはり、マイドキュメントに保存しなければ、表示はされないのでしょうか。 それともただ、私のやり方が間違えているだけなのでしょうか。 分かりにくい表現だったと思いますが、教えてていだだけると嬉しいです。

  • JSPでの画像ファイル表示

    <img src="~.gif">とすれば、決められた画像は表示できるのですが、"~.gif"の部分に変数を使用して、場合に応じて、ファイル名(数字)が違う画像ファイルを読み込ませたいのです。 その場合当然なのですが、<img src="~" + <% 変数 %> + ".gif">としても、できないんですよね。 何か方法をご存知の方教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • 初心者です。お願い致します。

    初心者です。お願い致します。 htmlで画像を2つ並べて表示しております。 その画像の間に少しですが空白がはいりますが、その空白を詰める事はcssを使うことにより可能になるのでしょうか? ----- <img src="x.gif"><img src"y.gif"> ----- どうかご指導をお願い致します。

    • ベストアンサー
    • HTML