- ベストアンサー
クッキーが邪魔をする
AjaxとCGI(Perl)は初心者のものです。 Ajaxを使ってCGIにデータを送信し、TXTを書き換えるのを作りました。 しかし、書き換えたTXTをAjaxで読み取ると、書き換える前のままなのです。 TXTを開いてみると更新されていて、 それを開いてから出ないと、HTMLに反映されません>< 「HTML」⇒⇒(1)⇒⇒「CGI」⇒⇒(2)⇒⇒「TXT」 ↓ ↑ ⇒⇒⇒⇒⇒⇒⇒⇒(3)⇒⇒⇒⇒⇒⇒⇒↑ (1)データをAjaxで送信 (2)CGIを使って書き換え (3)AjaxでTXTの内容を読み取り 上の(3)で、古いデータが引き出されます。 どなたか分かる方がいましたら、お助けください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#84373
回答No.2
キャッシュが効いていると推測。 ダミーの数値をつけて呼び出す var dmy = (new Date).getTime(); パラメーターを送るさいに、 '&dmy='+dmy を最後に付け加える 呼び出されるCGI側ではその数値は無視してOK!
その他の回答 (1)
noname#94983
回答No.1
(1)データをAjaxで送信 (2)CGIを使って書き換え (3)AjaxでTXTの内容を読み取り これは、そのまま続けて実行しているということはないだろうか。 (1)~(2)が完了した後に(3)を実行しているようになっているだろうか。(1),(2)が実行されてそのまま(3)を実行しても、まだそのときには(2)が完了していないのかも知れない。そのへんは問題ないのだろうか。
質問者
お礼
回等ありがとうございます。 確認したところ、何秒たっても反映されないので、 その辺は問題ないようです。
お礼
まさにこれでした! ?のあとに意味の無い情報を加えて、ブラウザにもう一度読み取らせるのですね。 自分のプログラムでは「..."?a="+Math.random()」という風にしておきました。 ありがとうございました。