iOS6キャッシュ問題!
iOS6のSafariは、みなさんご存知、Ajaxの通信をキャッシュするとか色々とあります。AjaxでPostした結果がキャッシュされてたりすると、まーなにかと困るわけですよね。
そこでどうするか
iOS6はnoCacheだよ!
ということでJsonで通信するときはHttpのヘッダーにnoCacheをつけましょうというのが解決策です。Javaで書くと下記のようなコードになります。
response.setHeader("Pragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);
Strut2の場合
Strut2でJsonのレスポンスを処理をする場合、Struts2 Jsonプラグインを使いますよね?他にも方法はありますが、今回はこの方法のやりかた。
実はすごい簡単。
struts.xmlのJsonプラグインの記述の所をこんな感じにするだけ。
<package name="myApp-default" extends="struts-default"> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"> <param name="noCache">true</param> </result-type> </result-types></package>
Jsonプラグインでよかったーε-(´∀`*)ホッ
ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識 戸根 勤 日経NETWORK 日経BP社 2007-04-12 売り上げランキング : 1498 Amazonで詳しく見る |