![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
JqueryからCGIを呼び出して、DBと接続し、その戻り値をHTMLページに反映しています。
処理をして、ブラウザを再起動すると処理されたデータで表示されるのですが、ブラウザを再起動しないと、処理する前のデータが表示されます。ページをリロードしても同じです。
下記のようにCGIを呼び出してDBと接続をしているのですが、
キャッシュがあると良くないと言うことが書いてあったので、
cache: false, を追加したり、
$.ajax({
type: 'GET',
url: '~.cgi',
cache: false, //←追加
data: ''',
success: function(result){
if (result != ''){
処理をする
}
}
$.ajaxSetup({
cache: false
});
↑を追加してみたりしたのですが、これらの部分からあとのプログラムが動きません。
(エラーになっている?ような感じです)
これらを削除してプログラムを動かすと、キャッシュが残っているような結果が帰ってきます。
要するに、DBの値を修正、削除をして、その後のデータを表示したいのですが、
削除後、修正後のデータが表示されません。
ブラウザを再起動すると、修正、削除されている状態で表示されます。
ブラウザを再起動しなくても処理をした後の結果がHTMLページに表示されるようにしたいです。
わかりにくい説明で申し訳ございませんが、ご不明な点はお聞き下さい。
どなたかおわかりになる方がいらっしゃいましたら教えて下さい。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
#1です。
時間が経ちましたが、まだ晒されてるようなので。
キャッシュについては、クライアント側だけでなく、サーバサイドや、経路中のプロキシサーバ等にも存在するので、一括で有効な方法というものはありません。
対策1:
メソッドを"POST"にする。
対策2:
リクエストオブジェクトに{ ticts = 時刻シード乱数 }等を追加し、毎回異なったクエリが出るようにする。
対策3:
サーバが返答するResponseで、LocalCacheやProxyCacheを切るパラメータを加える。
対策4:
サーバキャッシュの設定を適当な値に調整する(QueryByParamやCachePeriod等)。
Ajaxで応答値が更新されない問題なら、1か2で解決すると思います。
更新系のリクエストでGETを使う事は少ないので。。
更新リクエスト内容が丸見えになるのは、少々危ない気がします。
shockatz さん
ご回答ありがとうございました。
お返事が遅くなりまして申し訳ございません。
教えていただいたことをプログラムに組み込んでうまく動くように試行錯誤しておりました。
教えていただきました、対策1でなんとかうまくいきそうです!
本当にありがとうございました。
こういう仕様なのかと諦めておりましたが、ユーザビリティも悪いし何とかならないかと思っていました。
ありがとうございました。
また何かありましたらよろしくお願いいたします。
No.1
- 回答日時:
Ajaxパラメタで、cache:falseとしているのにキャッシュされている?
ひょっとしてtypeが'GET'になっているためと違います?
単なるクエリ付URLアクセスになるため、サーバ側がデフォルト動作で伽主動作しているのでは。
それでもダメなら、サーバ側で強制的にサーバキャッシュをoffに。
まだ残るなら、最後の手段で一時パラメータ(ticks等)を付加するとか。
shockatz さん
ご回答ありがとうございます。
はい、そうなんです。
typeが'GET'になっているとダメなのでしょうか。
サーバ側で強制的にサーバキャッシュをoff というのはどうやってやるのでしょうか。
使っているのはPerlを使っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- Chrome(クローム) PCの Google Chrome が頻繁に「ページが応答していません」となり作業が進みません。 1 2023/05/25 20:43
- その他(インターネット接続・インフラ) YAHOO知恵袋が開けません 2 2022/05/29 22:49
- その他(メールソフト・メールサービス) サンダーバードメール移動しない 1 2023/05/13 11:21
- gooのスマホ google playエラー 1 2022/09/22 18:56
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Windows 10 Windows10起動しない、エラー0xc0000185修復方法 2 2022/07/14 12:28
- HTML・CSS Chrome のキャッシュについて 3 2022/05/26 07:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(ブラウザ) ブラウザを再起動してください 1 2023/06/22 09:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
b75h2-m2 biosアップデートした...
-
GASでスプレッドシートの一番上...
-
バッチファイル 特定ウインドウ...
-
PDFを(htmlのように)無限に縦...
-
C言語のflagの使い方が分かりま...
-
要素内を常に一番下を表示させたい
-
jQuery を外部ファイルから呼び...
-
Ajax を Fetch API に 書き換え...
-
1枚の画像をクリックすると複数...
-
bxsliderで最初に縦に複数表示...
-
携帯電話番号だけで、居場所が...
-
以下のURL入れますか?皆さんは↓
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
-
非同期通信で掲示板を作る際の...
-
非同期通信を使うタイミングが...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
Pythonを勉強する道のり
-
Pythonを無料(安価)で学ぶ方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ajaxでhtmlを返して画面に描画…...
-
大量のデータを表として展開す...
-
Response.Write(変数)
-
ローカルネットワーク内での502...
-
【Ajax】改行を含めたデータを...
-
AjaxでDBと連携した動的リスト...
-
Ajaxで最新の情報が取得できない
-
Ajax、PHP、MySQLでDBからデー...
-
Rを使う際、データを読み込む時...
-
セレクトボックスのHTMLを教え...
-
JavaScript側でのXML作成の方法
-
Jqueryのキャッシュについて
-
CGI→AJAXへ配列の受け渡しは可...
-
jQueryの$.postの戻り値による...
-
【struts】2つのselectの連動
-
jquery serializable値取得
-
getJSONで受け取れるよう出力す...
-
googleマップにajax
-
python pandas ビックデータ解...
-
innerHTMLで表示完了後に、Ajax...
おすすめ情報