WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:CGI+JavaScriptで画像切り替え

0:[投稿] びーん [2003/12/22 22:25 ][環境:IE6,XP Linux,Apache]

画像を出力するCGIを作成し、それをJavaScriptで呼び出して表示させようとしていますが、
うまく動作しません。

CGIプログラム(gazou.cgi)は、呼び出し時に与えるパラメータにより、
次の2つの機能を持たせています。
gazou.cgi?1:単に今の画像を表示
gazou.cgi?2:画像をランダムに変更して表示

HTMLはこのようにしています。
---------------------------
<hmtl>
<head>
<script language="JavaScript">
<!--
function gazouChg(src){
document.myimg.src=src;
}
//-->
</script>
</head>
<body>
<a href="#" onClick="gazouChg('/cgi-bin/gazou.cgi?2')">
<img name="myimg" src="/cgi-bin/gazou.cgi?1" border="0">
</a>
</body>
</html>
---------------------------

ブラウザで開くと、まずgazou.cgi?1により単に画像を表示し、
その画像をクリックする度にgazou.cgi?2によりランダムな画像に変更されるはずです。
ところが最初の表示と、1回目のクリックによる画像切り替えはうまくいきますが、
2回目以降は画像が切り替わらず、無反応となってしまいます。
webサーバのログによると、2回目以降のクリックではCGIプログラムにアクセスしてません。
どのような理由が考えられるでしょうか?
よろしくお願いします。


1:[回答] バギンズ [2004/01/05 02:29 ]

gazou.cgi?2の2回目以降はキャッシュが効いていると思われます。

gazou.cgi?2→gazou.cgi?3→gazou.cgi?4→・・・
と、数字がかわるようにJavaScriptを組み、CGI側もそれに対応するようにしておけば解決すると思います。


2:[完了] びーん [2004/01/05 13:07 ]

回答ありがとうございます。
ご回答いただいた通り、ランダムなパラメータを与えてみたところ、うまく動作するようになりました。
助かりました。ありがとうございました。


3:[完了] バギンズ [2004/01/05 20:32 ]

追記です。

>>1 に書いた内容では、再度同じ数字になってしまうとキャッシュが効いてしまいますね。(失礼いたしました)

ここの掲示板のように、?の後に日時を付けたほうが確実にキャッシュを回避できそうです。
(この掲示板は年月日時分までみたいですが、秒も付けたほうが...秒以下にもこだわるなら、更に乱数とか)

>>2
桁数の多い乱数ならまず問題なさそうですね。(^_^)

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World