重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

AjaxとCGI(Perl)は初心者のものです。

Ajaxを使ってCGIにデータを送信し、TXTを書き換えるのを作りました。
しかし、書き換えたTXTをAjaxで読み取ると、書き換える前のままなのです。
TXTを開いてみると更新されていて、
それを開いてから出ないと、HTMLに反映されません><


「HTML」⇒⇒(1)⇒⇒「CGI」⇒⇒(2)⇒⇒「TXT」
 ↓                        ↑
 ⇒⇒⇒⇒⇒⇒⇒⇒(3)⇒⇒⇒⇒⇒⇒⇒↑
(1)データをAjaxで送信
(2)CGIを使って書き換え
(3)AjaxでTXTの内容を読み取り

上の(3)で、古いデータが引き出されます。
どなたか分かる方がいましたら、お助けください。

A 回答 (2件)

キャッシュが効いていると推測。


ダミーの数値をつけて呼び出す
var dmy = (new Date).getTime();
パラメーターを送るさいに、
'&dmy='+dmy
を最後に付け加える
呼び出されるCGI側ではその数値は無視してOK!
    • good
    • 0
この回答へのお礼

まさにこれでした!
?のあとに意味の無い情報を加えて、ブラウザにもう一度読み取らせるのですね。
自分のプログラムでは「..."?a="+Math.random()」という風にしておきました。
ありがとうございました。

お礼日時:2008/10/13 19:34

(1)データをAjaxで送信


(2)CGIを使って書き換え
(3)AjaxでTXTの内容を読み取り

これは、そのまま続けて実行しているということはないだろうか。
(1)~(2)が完了した後に(3)を実行しているようになっているだろうか。(1),(2)が実行されてそのまま(3)を実行しても、まだそのときには(2)が完了していないのかも知れない。そのへんは問題ないのだろうか。
    • good
    • 0
この回答へのお礼

回等ありがとうございます。
確認したところ、何秒たっても反映されないので、
その辺は問題ないようです。

お礼日時:2008/10/13 19:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!