先週、客先からAjaxで動的に表示しているメニューが表示されなくなったという連絡がありました。
こちらでは正常に表示されているし、客先でも一部のみのPCしか表示されないという連絡があり調べてみるとIEのキャッシュが原因でした。
原因
どうやらIEでAjaxを利用する場合、キャッシュをOFFにしとかないと通信処理を行わずローカル内のデータを表示しようとするみたいです。
なので対策としてはAjaxのキャッシュをOFFにする設定を入れてあげればいいだけです。
対策
[javascript] $.ajax({ type: "POST", url: "some.php", cache: false, data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); } }); [/javascript]と【cache: false】をつけるだけでキャッシュが残らなくなり、正しくメニュー表示するようになりました。
一部PCのみだけ発生するっていうのは厄介ですよね。
現象発生するのにも修正後確認するのにも判断しにくいので、対象ブラウザがIE入っている場合、Ajaxをfalseにしてみるのもいいかもしれませんね。