jquery loadキャッシュの問題
最近プロジェクトをしていて、変な問題に遭遇しました.Aページload Bページの時、初めて開いた時は普通でした.
上のinfoCommentPageはDIVのIDですが、
しかし、後でBページが提出された後、Bページをリフレッシュするには、問題が発生し、バックグラウンドに提出されたコードが実行され、データベースにもデータがあり、それから再びredirectが戻ってきて、死活Bページはリフレッシュされず、最新の内容は見えませんでした.firefoxの下でfirebugでバックグラウンドデータを要求したバックグラウンドのブレークポイントも見えます.
しかし、ページはまだ更新されていません.ie 8ではさらにスペクトルが外れて、ライブラリに加入したブレークポイントを提出して入りましたが、Bページのブレークポイントを要求しても全然入っていません.このように死んで、半日探して、JSに問題があると思って、それからloadのコールバック関数を使いました.
loadメソッドが呼び出されていることに気づいたので、キャッシュの問題だと疑っていましたが、やはり調べると、キャッシュの仕業です.
そしてBページに
これで問題が解決し、FFでよく見るとloadメソッドがリクエストされたときに自動的に時間が加算されていることがわかります
,FF,IEでも正常にリフレッシュできる
<script type="text/javascript">
$.ajaxSetup({cache: false});
loadCC:function(){
$("#infoCommentPage").load("${webRoot}/info/comment/${modelId}/${info.id}/1");
}
};
$(document).ready(function(){
P.loadCC();
});
</script>
上のinfoCommentPageはDIVのIDですが、
しかし、後でBページが提出された後、Bページをリフレッシュするには、問題が発生し、バックグラウンドに提出されたコードが実行され、データベースにもデータがあり、それから再びredirectが戻ってきて、死活Bページはリフレッシュされず、最新の内容は見えませんでした.firefoxの下でfirebugでバックグラウンドデータを要求したバックグラウンドのブレークポイントも見えます.
しかし、ページはまだ更新されていません.ie 8ではさらにスペクトルが外れて、ライブラリに加入したブレークポイントを提出して入りましたが、Bページのブレークポイントを要求しても全然入っていません.このように死んで、半日探して、JSに問題があると思って、それからloadのコールバック関数を使いました.
("#xxx").load("xxxx",function(){alert("aaaa");});
loadメソッドが呼び出されていることに気づいたので、キャッシュの問題だと疑っていましたが、やはり調べると、キャッシュの仕業です.
$.ajaxSetup({cache: false});
そしてBページに
<meta charset="utf-8" />
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
これで問題が解決し、FFでよく見るとloadメソッドがリクエストされたときに自動的に時間が加算されていることがわかります
,FF,IEでも正常にリフレッシュできる