- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Jqueryのキャッシュについて)
Jqueryのキャッシュについて
このQ&Aのポイント
- Jqueryのキャッシュにより、ブラウザを再起動しないと処理前のデータが表示される現象が発生しています。
- キャッシュを無効化するために、$.ajax関数のcacheオプションをfalseに設定や、$.ajaxSetup関数でキャッシュを無効化する方法を試しましたが、プログラムが動かなくなりました。
- 修正や削除したデータを即座に表示させるために、ブラウザを再起動せずに処理結果を表示する方法を教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 時間が経ちましたが、まだ晒されてるようなので。 キャッシュについては、クライアント側だけでなく、サーバサイドや、経路中のプロキシサーバ等にも存在するので、一括で有効な方法というものはありません。 対策1: メソッドを"POST"にする。 対策2: リクエストオブジェクトに{ ticts = 時刻シード乱数 }等を追加し、毎回異なったクエリが出るようにする。 対策3: サーバが返答するResponseで、LocalCacheやProxyCacheを切るパラメータを加える。 対策4: サーバキャッシュの設定を適当な値に調整する(QueryByParamやCachePeriod等)。 Ajaxで応答値が更新されない問題なら、1か2で解決すると思います。 更新系のリクエストでGETを使う事は少ないので。。 更新リクエスト内容が丸見えになるのは、少々危ない気がします。
その他の回答 (1)
- shockatz
- ベストアンサー率80% (153/191)
回答No.1
Ajaxパラメタで、cache:falseとしているのにキャッシュされている? ひょっとしてtypeが'GET'になっているためと違います? 単なるクエリ付URLアクセスになるため、サーバ側がデフォルト動作で伽主動作しているのでは。 それでもダメなら、サーバ側で強制的にサーバキャッシュをoffに。 まだ残るなら、最後の手段で一時パラメータ(ticks等)を付加するとか。
質問者
お礼
shockatz さん ご回答ありがとうございます。 はい、そうなんです。 typeが'GET'になっているとダメなのでしょうか。 サーバ側で強制的にサーバキャッシュをoff というのはどうやってやるのでしょうか。 使っているのはPerlを使っています。
お礼
shockatz さん ご回答ありがとうございました。 お返事が遅くなりまして申し訳ございません。 教えていただいたことをプログラムに組み込んでうまく動くように試行錯誤しておりました。 教えていただきました、対策1でなんとかうまくいきそうです! 本当にありがとうございました。 こういう仕様なのかと諦めておりましたが、ユーザビリティも悪いし何とかならないかと思っていました。 ありがとうございました。 また何かありましたらよろしくお願いいたします。