iPhone Safariの戻るボタンの挙動について

このQ&Aのポイント
  • iPhoneのSafariでの戻るボタンの挙動について調査しています。
  • アニメーションした後に次のページに遷移させ、ブラウザの戻るボタンで元のページに戻ったときに、アニメーションが終わった後の状態が表示される問題に直面しています。
  • キャッシュを無効にするために、さまざまな方法を試していますが、iPhoneのSafariだけキャッシュが読み込まれてしまいます。解決方法がわかる方がいらっしゃいましたら、ご教示ください。
回答を見る
  • ベストアンサー

iPhone Safariの戻るボタンの挙動

jQueryのanimate()を利用してスマホサイトを作っています。 アニメーションした後に次のページに遷移させて、 ブラウザの戻るボタンで元のページに戻ったときに、 アニメーションが終わった後の状態が表示されます。 どうやらキャッシュを表示させているようなので、Webで検索して window.onunlord = function(){} <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> などを試しましたが、iPhoneのSafariだけ、どうやってもキャッシュを読みます。 どなたか解決方法をご教示頂けませんでしょうか。 jQueryのバージョンは1.10.2です。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • gorusura
  • ベストアンサー率59% (25/42)
回答No.1

キャッシュというよりは、前のページを完全に再現しているような気がします。 CGIなどで出力しても、(クエリがあっても)やはり完全に同じ内容が出力されますので、回避は難しいのではないでしょうか。

DoPunk
質問者

お礼

ご回答有難うございます。 色々試しましたところ、確かにキャッシュというよりは、 スクリプトを実行しきった最後の状態をHTMLとして持っているような感じですね。 onpageshowを使ってなんとか回避できました。

その他の回答 (1)

  • kura07
  • ベストアンサー率50% (30/59)
回答No.2

私は iPhone を持っていないため、確認できないのですが… この文は、綴りが間違っています。 > window.onunlord = function(){} 以下のように修正したら、もしかしたらうまくいくかもしれません。(lord ではなく load) > window.onunload = function(){} 念のため確認ですが、この文は <script> で囲って使う物ですので、以下のようにしてくださいね。 <script> window.onunload = function(){} </script> また、前に回答している方のおっしゃる通り、これはキャッシュではないです。 Back Forward Cache というブラウザの機能だそうです。

DoPunk
質問者

お礼

ご回答有難うございます。 焦って綴りを間違えてしまいました。お恥ずかしい限りです。 コードの方には間違っていませんでしたが、やはり効果がないようでした。 http://rick-brain.sblo.jp/article/57893714.html こちらのサイトを参考に、onpageshowを使って回避できました。

関連するQ&A

  • MACのsafariでCGIを動作した場合、リロードボタンを押さないと更新されません。教えて下さい。

    MACのsafariでCGIを動作した場合、リロードボタンを押さないと更新されません。教えて下さい。 今perlを使ってスケジュール管理を作っていますが、IEでは、ちゃんと動作します。HTMLに <HEAD> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> </HEAD> と記述し、キャッシュを無効にしてみたのですが、 どうしてもsafariだと新規でスケジュールを入力したものがカレンダーに反映されません。 これは、HTML記述では、キャッシュを無効に できないのでしょうか? 教えて下さい。

    • ベストアンサー
    • Perl
  • 画像をキャッシュさせたくない

    CGIで動的に画像を表示するため表示した画像をキャッシュさせたくないのですが、どうすればいいのでしょうか。 他のページなどを参考に <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> をヘッダーに入れてみましたし、リダイレクトしたURLの後ろに無意味なランダム数字を入れても見ましたが、やはりキャッシュされています。 たとえキャッシュされていても無視して読み込むようなヘッダーとか何か確実に新たに読み込む方法はないでしょうか。

    • ベストアンサー
    • HTML
  • ブラウザの戻るができないようにしたい

    ページ内はHTMLファイルですが、そのページのiframe内にperlで動的ページを表示させています。 クリック自体はifream内の動的ページですが、ページのキャッシュが残っているらしく、ブラウザの戻るが有効になります。 戻るができないようにしたいのですが何か良い方法はありますか? 以下、効果はありませんでした。 ファイル1 test.html <html> <head> <title>HTML</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <ifream src="test.cgi"></ifream> </body> </html> ファイル2 test.cgi print "Content-type: text/html\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n"; print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n\n"; print <<EOT; <html> <head> <title>CGI</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <a href="test.cgi">sample</a> </body> </html> EOT exit;

    • ベストアンサー
    • Perl
  • 3日に1回リロードさせたい

    ページの情報を更新したときに、ブラウザのキャッシュの影響でページが更新されないことがあります。 cssが読み込まれていなかったり、htmlの変更が反映されていなかったり、 そのときはF5でリロードさせることで更新を反映させています。 ユーザーが自分でリロードを実行することなく、 自動的に更新させる方法を探しました。 <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="-1"> この方法だとキャッシュを削除することができ、 複数のブラウザにも対応できるそうですが、 キャッシュを毎回削除してしまうと ページを開く度に重くなってしまいます。 3日に1回、更新させる、ということはできませんか? <meta http-equiv="expires" content="Sat, 15 Nov 2012 12:00:00 GMT"> を <meta http-equiv="expires" content="Sat, 18 Nov 2012 12:00:00 GMT"> <meta http-equiv="expires" content="Sat, 21 Nov 2012 12:00:00 GMT"> のように3日ごとに更新するしかないのでしょうか。

  • URL指定のないHTTP-EQUIV="Refresh"

    稀に以下の様なページが出る事があるのですが、 これはどういう原因で起こるのでしょうか? <HTML> <HEAD> <META HTTP-EQUIV="Refresh" CONTENT="0.1"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1"> </HEAD> </HTML> 0.1秒毎にキャッシュ消しながらリフレッシュ、という意味だと思うのですが、サーバー攻撃みたいな事になっていて困っています。

  • 画像が更新されない

    はじめまして。 ご相談したいことなのですが、 php5 mysql を使用してプログラムを作成しております。 そしてつまずいてしまい2日間解決できずに皆様の力をお借りできればと思います。 フォームを使用し画像を登録するシステムを作っています。 そして画像を変更するシステムを作成しているところで、画像の更新が表示上反映されないのです。 データベース・ティレクトリ内は更新されていて、ページを更新(F5)をするまで画像が反映されないのです。 キャッシュが残っているのかと思い、 <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="-1" /> <meta http-equiv="Cache-Control" content="no-cache" /> の記述をしたり 画像を入れているディレクトリに.htaccessを使い Header set Cache-Control "no-cache" Header set Pragma "no-cache" と記述しているのですがまったくダメで困っています。 単純なことかも知れませんがよろしくお願い致します。

    • ベストアンサー
    • PHP
  • IEでブラウザにキャッシュをさせないようにするには?

    更新頻度の多いホームページを公開したいのですが、IEだとブラウザがキャッシュをしてしまって、常に最新の情報を表示させることができません。 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META EQUIV="Expires" CONTENT="-1"> これをやっても効かないのです。。 IEのホームページを見ると、IEではこのタグは無視されます、と書いてありました。。 YAHOO!などのポータルサイトは更新されるわけですから、方法はあるのだと 思うのですが、具体的にはどういった方法があるのでしょうか?

  • キャッシュを完全に消すHTML入れたのですが、・・

    私はフラッシュを作成している者です。 フラッシュをまめに修正してネットにアップしているのですが、なぜか最初にアップしたままという現象が続きました。 いろいろ調べたところキャッシュされていてそれが読み込まれている状態と気づきました。 これを解消すべく、キャッシュを完全に残さずに表示させる勉強を始めました。 下記のようなソースコードを入れることによってキャッシュされにくいという情報を入手したので入れたのですが、反応がありませんでした。 どうかキャッシュを読み込まないようにする方法を教えていただけないでしょうか? お願いします。(土下座) <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">

  • アップレットをキャッシュしないようにしたい

    現在、アプレットを開発中ですが、 アップレットがキャッシュされるため、うまくデバッグできません。 <META http-equiv="Pragma" content="no-cache"> <META http-equiv="Expires" content="-1"> は入れているのですが、どうしたらいいでしょうか? ブラウザをいったん閉じないとだめでしょうか? また、JAVAコンソールにsystem.out.printlnの情報がでてこないのですが、 何か設定が必要でしょうか? よろしくおねがいします。。

    • ベストアンサー
    • Java
  • 緊急!!広告バナーとキャッシュサーバーの関係

    とても今困っています。 HTML(smarty使用)であるページを作成しています。 ヘッダー部にJavaScriptで新しい広告バナーを貼り付けたのですが、 キャッシュサーバーの関係で、反映されず、以前の広告バナーが出てしまいます。 Ctrl+F5などのページ更新をすれば新しい広告バナーに変わるのですが・・・・・・。 <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="1"> などもhead部に入れてみましたが、駄目でした。 サーバーの設定ファイルを変更するしかありませんか? 出来れば、他の画像・動画もある為に、あまりキャッシュ機能は外したくありません。 よろしくお願いします。

専門家に質問してみよう