iOS/safariで戻るボタンでトラブった

2014-05-28

概要

angularjsでガリガリ書いてるwebアプリにて
ブラウザの戻るボタンを押すとロードしていたはずの画面が見えなくなる現象がおきた。

結果、display:none;からvisibility:hidden;に変えたらなおった。

めも

先人達のお知恵を拝借してブラウザにcacheさせないようにするも解決せず。。。
どうしてもブラウザのキャッシュを引いてしまいます。。。

挿入したコード

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">

参考サイト

http://dany1468.hatenablog.com/entry/2014/03/07/093813
http://katsuyuzu.hatenablog.jp/entry/2013/10/11/002513

戻るボタンをつかえないようにhistory.foward()も考えたのですが、
ちょっとユーザーが戸惑いそう。

ならば戻るボタンを設置してルートにとばそうとhref="/"を挿入しても解決せず。

ただ、空白画面になってからサイドバーを出し入れするボタンを押して画面リフレッシュすると
データが表示される事がわかり、キャッシュが問題ではないことがわかりました。

で、いろいろ調べた結果、iOSのsafariだとdisplay:none;すると
要素そのものにアクセスができなり、計算ができなそうです。

というわけで同一画面内での要素の切り替えをvisivility:hidden;に置き換える事で
解決しました。

#JavaScript  #iOS  #Safari  #Cache